🟦 一、g++ 最常用基础编译参数
1. 指定 C++ 标准版本(最常用)
-std=c++17
-std=c++20
-std=c++23
启用对应版本的语言特性。
2. 开启警告
-Wall
打开常用警告。
3. 开启更多警告
-Wextra
检查更多潜在 bug(如隐式转换、未使用变量等)。
4. 警告视为错误(严格模式)
-Werror
保证所有警告必须解决。
5. 启用优化
-O2
-O3
-O2:比较安全,适合大多数情况\-O3:更激进,有时会更快,有时引入风险
6. 启用调试信息
-g
用于 gdb / VSCode 调试阶段,不影响程序行为。
7. 保留调用栈指针(便于调试)
-fno-omit-frame-pointer
8. 链接时优化(LTO)
-flto
加快运行速度、减小程序体积。
9. 只编译为 .o 文件
-c
用于大型项目分文件编译。
10. 指定输出文件名
-o output.exe
🟦 二、常用编译命令(直接可用)
⭐ 1. 开发调试模式(推荐)
g++ -std=c++20 main.cpp -Wall -Wextra -g -O0 -o app.exe
⭐ 2. 发布(Release)模式
g++ -std=c++20 main.cpp -O2 -flto -o app.exe
更激进版本:
g++ -std=c++20 main.cpp -O3 -march=native -flto -o app.exe
⭐ 3. 严格错误检查模式(CI/CD 使用)
g++ -std=c++20 main.cpp -Wall -Wextra -Werror -O2 -o app.exe
⭐ 4. 简单编译
g++ main.cpp -o app.exe
🟦 三、实战示例(可直接复制)
示例 A:你当前最适合的
g++ -std=c++20 main.cpp -Wall -Wextra -O2 -o app.exe
示例 B:VSCode 调试使用
g++ -std=c++20 main.cpp -Wall -Wextra -g -o app.exe
示例 C:多文件项目
g++ -c a.cpp -o a.o
g++ -c b.cpp -o b.o
g++ a.o b.o -o app.exe
🟦 四、推荐的开发模式
✔ Debug 模式(调试)
g++ -std=c++20 -Wall -Wextra -g -O0 -o app.exe
✔ Release 模式(上线)
g++ -std=c++20 -O3 -march=native -flto -o app.exe