在 Linux 下编译 C++ 程序,最常用的是 g++(GCC 的 C++ 编译器)。下面从简单到进阶给你一个完整说明。
// main.cpp
#include <iostream>
int main() {
std::cout << "Hello Linux C++" << std::endl;
return 0;
}
编译:
g++ main.cpp
生成默认可执行文件:
./a.out
✅ 输出:
Hello Linux C++
g++ main.cpp -o hello
运行:
./hello
g++ -Wall -Wextra -g main.cpp -o hello
参数说明:
| 参数 | 作用 |
|---|---|
-Wall |
开启常用警告 |
-Wextra |
额外警告 |
-g |
生成调试信息(用于 gdb) |
-o |
指定输出文件名 |
g++ -std=c++11 main.cpp
g++ -std=c++17 main.cpp
g++ -std=c++20 main.cpp
.
├── main.cpp
├── foo.cpp
└── foo.h
编译:
g++ main.cpp foo.cpp -o app
适合中大型项目:
g++ -c foo.cpp # 生成 foo.o
g++ -c main.cpp # 生成 main.o
g++ main.o foo.o -o app
优点:
CXX = g++
CXXFLAGS = -Wall -Wextra -std=c++17 -g
app: main.o foo.o
$(CXX) main.o foo.o -o app
main.o: main.cpp
$(CXX) $(CXXFLAGS) -c main.cpp
foo.o: foo.cpp
$(CXX) $(CXXFLAGS) -c foo.cpp
clean:
rm -f *.o app
使用:
make
./app
make clean
cmake_minimum_required(VERSION 3.10)
project(MyApp)
set(CMAKE_CXX_STANDARD 17)
add_executable(app main.cpp foo.cpp)
mkdir build
cd build
cmake ..
make
./app
g++ --version
如果没有安装:
sudo apt update
sudo apt install g++ # Ubuntu / Debian
| 错误 | 原因 |
|---|---|
g++: command not found |
未安装 g++ |
undefined reference |
没链接源文件或库 |
stray '\' in program |
Windows 换行符问题 |
g++ -g main.cpp -o app
gdb ./app
如果你愿意,我可以:
你现在用的是 Ubuntu / CentOS / Arch 还是 WSL?