GCC编译命令汇总

GCC编译命令

1. GCC编译过程

GCC编译过程分为4个步骤:

(1)预处理:源文件(.c),生成(.i)

                命令:gcc -e test.c -o test.i

(2)汇编:源文件(.i),生成(.s)

                命令:gcc -s test.i -o test.s

(3)编译:源文件(.s),生成(.o)

                命令:gcc -c test.s -o test.o

注意:gcc实现了把预处理/汇编/编译合并在一起的操作,只需执行命令:

gcc -c test.c -o test.o即可。

(4)链接:源文件(.o),生成(无后缀)

                命令:gcc test.o test1.o -o test

注意:上述4个步骤也可以合成一步完成,只需执行命令:

gcc test.c -o test

2. 其他编译指令

(1)-w

不生成任何警告信息

(2)-pipe

使用管道代替编译中的临时文件,在使用非gnu汇编工具时,可能有些问题

(3)-m64

64位应用程序,对应的还有-m32

(4)-O

-O等同于-O1,指优化代码

优化代码命令总共有四个:

-O0:不优化代码

-O1/-O:优化代码

-O2:进一步优化

-O3:更进一步优化,包括inline函数

(5)-I

指定头文件路径

(6)-shared

产生共享动态库

(7)-fPIC

使用地址无关代码。PIC:position independent code.fpic的目的是什么?共享对象可能会被不同的进程加载到不同的位置上,如果共享对象中的指令使用了绝对地址,外部模块地址,那么在共享对象被加载时就必须根据相关模块的加载位置对这个地址做调整,也就是修改这些地址,让它在对应进程中能正确访问。

(8)-o

输出文件,可以是.i/.s/.o/.so等文件

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值