1 -g 编绎带调试信息的可执行文件
# g++ 产生能被 GNU 调试器GDB使用的调试信息,以调试程序。
# 产生带调试信息的可执行文件test
g++ -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.out
g++ test.cpp -o2 test
10 -D 定义宏
g++ -DDEBUG test.cpp