GCC编译简单范例

1.单一程序:打印Hello

源文件为hello.c

无选项编译链接

gcc hello.c

将hello.c预处理、汇编、编译并链接形成可执行文件。这里未指定输出文件,默认输出为a.out

选项 -o

-o选项用来指定输出文件的文件名

gcc hello.c -o hello

选项 -E

gcc -E hello.c -o hello.i

将hello.c预处理输出hello.i文件

参数 -S

gcc -S hello.i

将预处理输出文件hello.i汇编成hello.s文件

参数 -c

gcc -c hello.s

将汇编输出文件hello.s编译输出hello.o文件

无选项链接

gcc hello.o -o hello

参数 -O

gcc -O1 hello.c -o hello

使用编译优化级别1编译程序.级别为1-3,级别越大优化效果越好,但编译时间越长.


2.主程序子程序链接:子程序的编译

假设我们在一个主程序里有调用了另一个子程序,例如以thanks.c这个主程序去调用thanks_2.c这个程序

多个文件一起编译

gcc thanks.c thanks_2.c -o thanks

将thanks.c和thanks_2.c分别编译后链接成thanks可执行文件

分别编译各个源文件,之后对编译后输出的目标文件链接

gcc -c thanks.c
gcc -c thanks_2.c
gcc -o thanks.o thanks_2.o -o test

以上两种方法相比较,第一中方法编译时需要所有文件重新编译,而第二种方法可以只重新编译修改的文件,未修改的文件不用重新编译。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值