gcc/g++编译过程常用选项1、预处理,生成.i .ii的文件[预处理器]
2、将预处理后的文件转换成汇编语言,生成文件.s[编译器]
3、由汇编变为目标代码(机器代码)生成.o的文件[汇编器as]
4、连接目标代码,生成可执行程序[链接器ld]
-c | 只编译并生成目标文件 |
-DMACRO | 以字符串“1”定义MACRO宏,相当于#define macro |
-DMACRO=DEFN | 以字符串“DEFN”定义MACRO宏,相当于#define macro=defn |
-Umacro | 取消MACRO宏定义,相当于#undef macro |
-C | 在预处理的时候, 不删除注释信息, 一般和-E使用, 有时候分析程序,用这个很方便 |
-E | 只激活预处理,可将预处理定向到标准输出,gcc -E hello.c |
-S | 只激活预处理和编译,就是指把文件编译成为汇编代码,生成.s文件 |
-g | 生成调试信息 |
-pipe | 使用管道代替编译中临时文件 |
-L | 表示要连接的库所在的目录,g++ main.cpp -L/lib -lopencv |
-llibrary | 指定编译的时候使用的库,gcc -lopencv main.c |
-o FILE | 生成指定的输出文件,用在生成可执行文件时 |
-O0 | 编译器没有优化 |
-O或-O1 | 缺省值, 优化生成代码 |
-O2 | 进一步优化 |
-O3 | 优化级别最高,包括 inline 函数 |
-fPIC | 表示编译为位置独立的代码,用于编译共享库 gcc -fPIC -c test.c |
-fPIE | 表示编译为位置独立的代码,用于编译可执行文件 |
-shared | 指定生成动态链接库 gcc -shared -o test.so test.o |
-static | 指定生成静态链接库 |
-w | 关闭编译时的警告 |
-W | 类似-Wall,只显示编译器认为会出现错误的警告 |
-Wall | 生成所有警告信息 |
-ggdb | 此选项将尽可能的生成gdb 的可以使用的调试信息 |
-Wl,options | 把参数(options)传递给链接器ld,如果options 中间有逗号,就将options分成多个选项,然后传递给链接程序 |
-std=c,c++ | 确定编译语言的标准 |
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)