聊聊GCC编译C语言
2017-10-18 本文已影响24人
原来不语
gcc命令使用GNU推出的基于C/C++的编译器,是开放源代码领域应用最广泛的编译器,具有功能强大,编译代码支持性能优化等特点!
使用gcc前需要下载并安装gcc(http://gcc.gnu.org/)一般情况下载下来解压就好!
gcc语法:gcc(选项)(参数)
参数:-o:指定生成的输出文件;
-E:仅执行编译预处理;
-S:将C代码转换为汇编代码;
-c:仅执行编译操作,不进行连接操作。
-g:产生符号调试工具(GNU的 gdb)所必要的符号信息
案例:以first.c为例!
直接采用 gcc first.c 可以直接将first.c编译为可执行文件!a.out文件
![](https://img.haomeiwen.com/i7129460/37a882e224f5b1ff.png)
在后边加上 -o first 可以指定要生成的文件名
![](https://img.haomeiwen.com/i7129460/2ada1802be26b61b.png)
这样直接生成的是可执行文件,所以看不到具体的编译、连接等的具体过程!
所以下来就聊一聊,带参数的分部编译!
gcc -E first.c -o first.i
将first.c预处理输出first.i文件。(对文件进行预处理编译)
![](https://img.haomeiwen.com/i7129460/deb561ca383a16a1.png)
里边的.i文件
![](https://img.haomeiwen.com/i7129460/8ecae07b8888094c.png)
将.i 文件进行汇编处理
gcc -S first.i -o first.s
![](https://img.haomeiwen.com/i7129460/c3b71f5ca3ba7144.png)
![](https://img.haomeiwen.com/i7129460/1e6cfec7a8ab682b.png)
将.s文件进行链接生产.o
gcc -c first.s -o first.o
![](https://img.haomeiwen.com/i7129460/d5fdb9dcc7194c1f.png)
最后就是first.c分步编译的过程