gcc命令常用选项及工作流程
学习日志 姓名: 日期:
|
|
今日学习任务 |
Gcc命令常用选项及工作流程 |
今日任务完成情况 |
基本完成 |
今日开发中出现的问题汇总 |
无 |
今日未解决问题 |
无 |
今日开发收获 |
无 |
其他 |
无 |
用法:gcc [选项] [文件名] [选项] [文件名]
选项:用于控制编译的整个流程。
常用选项:
-c:对源文件进行编译或汇编。
-E:对源文件进行预处理。
-S:对源文件进行编译。
-o file :输出目标文件 file 。
-v:显示编译阶段的命令。
语言选项:用于支持各种版本的 C 语言程序。
调试选项:用于控制调试信息。
常用选项: -g:产生调试信息。
优化选项:用于对目标文件进行优化。
常用选项:
-O1:对目标文件的性能进行优化。
-O2:在-O1 的基础上进一步优化,提高目标文件的运行性能。
-O3:在-O2 的基础上进一步优化,支持函数集成优化。
-O0:不进行优化。
连接器选项:用于控制链接过程。
常用选项:
-static:使用静态链接。
-l library :链接 librar y 函数库文件。
-L dir :指定连接器的搜索目录 dir 。
-shared:生成共享文件。
目录选项:用于指定编译器的文件搜索目录。
常用选项:
-I dir :指定头文件的搜索目录 dir 。
-Ldir:指定搜索目录 dir
这里通过编 译 C 文件 test.c 来展示 GCC 的工作流程。
例如: test.c
#include <stdio.h>
int main()
{
printf(“Hello world!\n”);
return 0;
}
用一个图看一些上面gcc命令选项的关系
如上图:
输入命令gcc -E test.c -o test.i得到.i文件,
输入命令“gcc -S test.i -o test.s”,得到.s文件,
输入命令“gcc -c test.s -o test.o”得到.o文件,
最后输入命令“gcc test.o -o test”,得到可执行文件test。