在 Linux 下做 C++ 配置和编译,通常分几种常见场景。下面从最基础到常见工程化方式给你一个清晰流程,你可以按自己需求选。
sudo apt update
sudo apt install g++ # Ubuntu / Debian
检查版本:
g++ --version
// main.cpp
#include <iostream>
using namespace std;
int main() {
cout << "Hello Linux C++" << endl;
return 0;
}
g++ main.cpp -o main
./main
✅ 输出:
Hello Linux C++
g++ -std=c++17 -Wall -O2 main.cpp -o main
| 参数 | 说明 |
|---|---|
-std=c++17 |
C++ 标准 |
-Wall |
显示所有警告 |
-O2 |
优化 |
-g |
生成调试信息 |
project/
├── main.cpp
├── foo.cpp
├── foo.h
g++ -std=c++17 main.cpp foo.cpp -o app
或分步编译:
g++ -c foo.cpp
g++ -c main.cpp
g++ foo.o main.o -o app
CXX = g++
CXXFLAGS = -std=c++17 -Wall -O2
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
✅ 适合中小型项目
sudo apt install cmake
project/
├── CMakeLists.txt
├── main.cpp
├── foo.cpp
├── foo.h
cmake_minimum_required(VERSION 3.10)
project(MyApp)
set(CMAKE_CXX_STANDARD 17)
add_executable(myapp main.cpp foo.cpp)
mkdir build
cd build
cmake ..
make
./myapp
✅ 跨平台、工程化首选
g++ -g main.cpp -o main
gdb ./main
常用命令:
run
break main
next
print x
fatal error: xxx.h: No such file or directory
✅ 解决:
g++ -I./include main.cpp
undefined reference to `foo()`
✅ 解决:
.cpp 文件一起编译✅ 入门
g++ + 命令行
✅ 进阶
Makefile
✅ 工程化
CMake
如果你愿意,可以告诉我:
我可以直接给你一份完全可用的工程模板。