- GCC工作流程
源代码(.h .c .cpp)==预处理器==> 预处理后源代码 ==编译器==> 汇编代码(.S)==汇编器==> 目标代码(.o)与启动代码、库代码(.a/.so)、其他目标代码 ==链接器==> 可执行程序(win:.exe linux:.out)
- 常用后缀
gcc编译选项 | 说明 |
---|---|
-E | 预处理指定的源文件,不进行编译 |
-S | 编译指定的源文件,但是不进行汇编 |
-c | 编译、汇编指定的源文件,但不进行链接 |
-o [file1] [file2] / [file2] -o [file1] | 将文件file2编译成可执行文件file1 |
-I directory | 指定includ包含文件的搜索目录 |
-g | 在编译时生成调试信息,该程序可以被调试器调试 |
-D | 在程序编译时指定一个宏 |
-w | 不生成任何警告信息 |
-Wall | 生成所有警告信息 |
-On | n的取值范围:0~3。编译器的优化选项的4个级别,-O0表示没有优化,-O1为缺省值,-O3优化级别最高 |
-l | 在程序编译时指定使用的库 |
-L | 在指定编译时,搜索的库的路径 |
-fPIC/fpic | 生成共享目标文件,通常用在建立共享库时 |
-shared | 生成共享目标文件,通常用在建立共享库(动态库)时 |
-std | 指定C方言,如:-std=C99,gcc默认的方言是GNU C |