【无需打开直接搜索微信;-】 操作使用教程: ...
2025-08-11 0
bashg++ hello.cpp -o hello
就像做菜要先放盐一样,这最基础的命令是所有编译的基础。
bashO0 - 不优化(调试用)g++ -O0 hello.cpp -o helloO1 - 基础优化g++ -O1 hello.cpp -o helloO2 - 中等优化(推荐)g++ -O2 hello.cpp -o helloO3 - 高级优化(可能有bug)g++ -O3 hello.cpp -o helloOs - 优化体积g++ -Os hello.cpp -o helloOfast - 极速优化(不保证准确)g++ -Ofast hello.cpp -o hello
案例:
小明写了个计算程序,用-O0调试时发现数组越界,用-O2编译后居然跑得更快了!这就是优化的魔力。
bash生成调试信息(GDB必备)g++ -g hello.cpp -o hello生成详细的调试信息g++ -ggdb hello.cpp -o hello显示编译过程g++ -v hello.cpp -o hello显示详细编译信息g++ -Wall -Wextra hello.cpp -o hello
bash开启所有警告g++ -Wall -Wextra -Wpedantic hello.cpp -o hello特殊警告g++ -Werror hello.cpp -o hello # 警告变错误g++ -Wno-unused-variable hello.cpp -o hello # 忽略未使用变量警告
建议: 每个程序员都应该养成"开启所有警告"的习惯,就像医生检查身体一样,不放过任何细节。
bash链接数学库g++ -lm hello.cpp -o hello链接多线程库g++ -lpthread hello.cpp -o hello链接动态库g++ -L/usr/lib -lmylib hello.cpp -o hello指定头文件路径g++ -I/usr/include hello.cpp -o hello指定库文件路径g++ -L/usr/lib -lmylib hello.cpp -o hello
案例: 小李写了个多线程程序,编译时报错"未定义引用",原来是忘记加-lpthread参数。就像开车没系安全带,系统直接报错!
bash静态链接(体积大但独立)g++ -static hello.cpp -o hello动态链接(体积小但依赖系统)g++ hello.cpp -o hello
bashC++11标准g++ -std=c++11 hello.cpp -o helloC++14标准g++ -std=c++14 hello.cpp -o helloC++17标准g++ -std=c++17 hello.cpp -o helloC++20标准g++ -std=c++20 hello.cpp -o hello最新标准g++ -std=gnu++20 hello.cpp -o hello
bash显示宏展开g++ -E hello.cpp -o hello.i显示汇编代码g++ -S hello.cpp -o hello.s生成中间文件g++ -c hello.cpp -o hello.o
bash生成性能分析数据g++ -pg hello.cpp -o hello指定输出目录g++ -o /tmp/hello hello.cpp使用特定架构g++ -march=native hello.cpp -o hello指定CPU类型g++ -mcpu=cortex-a72 hello.cpp -o hello
bash指定栈大小g++ -Wl,-stack_size,0x1000000 hello.cpp -o hello优化内存使用g++ -fomit-frame-pointer hello.cpp -o hello启用内存检查g++ -fsanitize=address hello.cpp -o hello
bash完整的生产环境编译命令g++ -O2 -Wall -Wextra -std=c++17 \ -pthread -lm -lssl -lcrypto \ -g -pg -fPIC \ -I/usr/include/openssl \ -L/usr/lib/x86_64-linux-gnu \ main.cpp -o myprogram调试版本g++ -O0 -g -Wall -Wextra -std=c++17 \ -fsanitize=address \ main.cpp -o debug_program
makefileCXX = g++CXXFLAGS = -O2 -Wall -Wextra -std=c++17LDFLAGS = -pthread -lmprogram: main.o utils.o $(CXX) $(LDFLAGS) -o program main.o utils.omain.o: main.cpp $(CXX) $(CXXFLAGS) -c main.cpputils.o: utils.cpp $(CXX) $(CXXFLAGS) -c utils.cpp
bash未定义引用错误 → 检查库参数g++ -lpthread hello.cpp -o hello头文件找不到 → 检查-I参数g++ -I/usr/local/include hello.cpp -o hello编译速度慢 → 用-O1或-O2g++ -O1 hello.cpp -o hello
记住这10个关键参数:
就像做菜一样,调料要放对了才好吃!
---
本指南涵盖了从入门到精通的所有G++参数,记住:不是参数越多越好,而是要用对参数!
相关文章
现在人们打棋牌麻将谁不想赢?手机微乐麻将必赢神器但是手机棋牌麻将是这么好赢的吗?在手机上打棋牌麻将想赢,不仅需要运气,也需要技巧。掌握的棋牌麻将技巧就...
2025-08-11 0
您好:这款游戏可以开挂,确实是有挂的,很多玩家在这款游戏中打牌都会发现很多用户的牌特别好,总是好牌,而且好像能看到-人的牌一样。所以很多小伙伴就怀疑这...
2025-08-11 0
您好:这款游戏可以开挂,确实是有挂的,很多玩家在这款游戏中打牌都会发现很多用户的牌特别好,总是好牌,而且好像能看到-人的牌一样。所以很多小伙伴就怀疑这...
2025-08-11 0
发表评论