1 -g 编绎带调试信息的可执行文件
# g++ 产生能被 GNU 调试器GDB使用的调试信息,以调试程序。# 产生带调试信息的可执行文件testg++ -g test.cpp -o test
2 -o 优化源代码
# -O 同时减小代码的长度和执行时间,其效果等价于-O1# -O0 表示不做优化# -O1 为默认优化# -O2 除了完成-O1的优化之外,还进行一些额外的调整工作,如指令调整等。# -O3 则包括循环展开和其他一些与处理特性相关的优化工作。# 选项将使编译的速度比使用 -O 时慢, 但通常产生的代码执行速度会更快。g++ test.cpp -o2 test
3 -l 指定库文件 (小写的L)
这里指的库 包括 静态库 和 动态库
# -l参数(小写)就是用来指定程序要链接的库,-l参数紧接着就是库名# 在 /lib 和 /usr/lib 和 /usr/local/lib 里的库直接用-l参数就能链接g++ -l glog test.cpp // 链接glog库
4 -L 指定库文件路径
这里指的库 包括 静态库 和 动态库
# 如果库文件没放在上面三个目录里,需要使用-L参数(大写)指定库文件所在目录# -L参数跟着的是库文件所在的目录名# 链接mytest库,libmytest.so在/home/bing/mytestlibfolder目录下g++ -L/home/bing/mytestlibfolder -lmytest test.cpp
5 -I 指定头文件搜索目录
# /usr/include目录一般是不用指定的,gcc知道去那里找,# 但是如果头文件不在/usr/icnclude里我们就要用-I参数指定了# 比如头文件放在/myinclude目录里,那编译命令行就要加上-I/myinclude 参数了,# 如果不加你会得到一个”xxxx.h: No such file or directory”的错误。# -I参数可以用相对路径,比如头文件在当前 目录,可以用-I.来指定。g++ -I /myinclude test.cpp
6 -Wall 打印警告信息
g++ -Wall test.cpp
7 -w 关闭警告信息
g++ -w test.cpp
8 std=c++11 设置编绎标准
g++ -std=c++11 test.cpp
9 -o 指定输出文件名
# 不加-o 指定输出名, 则默认输出为a.outg++ test.cpp -o2 test
10 -D 定义宏
g++ -DDEBUG test.cpp

