Welcome 微信登录

首页 / 操作系统 / Linux / gcc / g++ 编译选项

-c 生成obj的.o文件,不生成可执行文件 只预处理,编译和汇编,不链接。 例子: gcc -c hello.cpp 他将生成.o的obj文件 -g 编译时,产生调试信息可以用于gdb -o 生成可执行文件,指定可执行文件名。如果没有,默认为a.out 例子: g++ -o hello hello.cpp -Wall 显示所有的Warning -pg 可以生成gprof调试的文件 -Dmacro 相当于C语言中的#define macro -Dmacro=defn 相当于C语言中的#define macro=defn -Umacro 相当于C语言中的#undef macro -undef 取消对任何非标准宏的定义 -IDir 增加编译时搜寻头文件的路径 -llibrary 指定编译的时候使用的库 例子: gcc -lcurses hello.c 使用ncurses库编译程序 -Ldir 增加编译时搜索库的路径。 -M 生成文件关联的信息。包含目标文件所依赖的所有源代码。 例子: g++ -M hello.cpp -MM 和上面的那个类似,但是忽略由#include<file>造成的依赖关系。 -Olevel 编译器优化级别。-O0表示没有优化,-O3优化级别最高 -static 此选项将禁止使用动态库,所以,编译出来的东西,一般都很大,也不需要什么动态连接库,就可以运行. -shared 此选项将尽量使用动态库,所以生成文件比较小,但是需要系统由动态库。