gcc编译选项

37 篇文章 2 订阅

GCC编译C源代码有四个步骤:预处理 > 编译 > 汇编 > 链接。

  1. 预处理:编译器将C程序的头文件编译进来,还有宏的替换,可以用gcc的参数-E。
    gcc -E test.c -o test.i 生成预处理文件test.i
  2. 编译:把代码翻译成汇编语言。可用gcc的参数-S。
    gcc -S test.i -o test.S 生成汇编文件test.S
  3. 汇编:把汇编文件生成二进制目标文件。可用gcc的参数-c。
    gcc -c test.S -o test.o 生成目标文件test.o
  4. 链接:把目标文件链接为可执行的文件。
    gcc test.o -o test (-lc) 生成可执行文件test(-lc可有可无)
  • 没有选项,gcc test.c 会生成一个可执行文件a.out
  • -o 意思是output,指定输出文件名称,[-o outfile]
  • -c 意思是compile,只编译,不链接库文件。gcc -c test.c 会生成test.o的目标文件
  • -S 意思是aSsemble,生成汇编文件。gcc -S test.c 会生成test.S汇编文件
  • -E 意思是prEprocess,预处理c文件。gcc -E test.c 会把预处理结果进行标准输出(打印在屏幕上)
  • -lm 链接到libm.so库文件,主要是math.h中的数学函数
  • -lc 链接到libc.so库文件,这是gcc的默认选项,加不加都行。大部分库函数如printf()位于libc.so库文件中
  • -O 意思是Optimize,基本优化。gcc -O test.c 生成经过优化的可执行文件a.out。
  • -O2 最大优化。gcc -O2 test.c 生成最大优化的可执行文件a.out。
  • -g 可以进行gbd调试。生成的可执行文件会比不加该选项时大一点。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值