2014025679《嵌入式系统程序设计》第二周学习总结

本文介绍了GCC编译器的使用技巧,包括不同编译选项的意义,如-On用于控制代码优化级别,-o指定输出文件名等。同时对比了单个与多个源文件的编译方法,强调了分开编译的优点在于能避免重复编译未改动的文件。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.GCC学习总结:
gcc选项优化:
含义:
  gcc可以对代码进行优化,他通过编译选项-On来控制优化代码的生成,n可以看做是一个代表优化级别的变量。并且在不同版本的gcc中,n的值及其对应的优化效果可能不完全相同。

gcc的命令
-o:指定生成的输出文件;
-E:仅执行编译预处理;
-S:将C代码转换为汇编代码;
-wall:显示警告信息;
-c:仅执行编译操作,不进行连接操作。
分别编译各个源文件,之后对编译后输出的目标文件链接。
gcc -c testfun.c #将testfun.c编译成testfun.o
gcc -c test.c #将test.c编译成test.o
gcc -o testfun.o test.o -o test #将testfun.o和test.o链接成test

 

2.多源文件的编译方法

如果有多个源文件,基本上有两种编译方法:
[假设有两个源文件为test.c和testfun.c]

  1. 多个文件一起编译
    用法:#gcc testfun.c test.c -o test
    作用:将testfun.c和test.c分别编译后链接成test可执行文件。

  2. 分别编译各个源文件,之后对编译后输出的目标文件链接。
    用法:
    gcc -c testfun.c //将testfun.c编译成testfun.o
    gcc -c test.c //将test.c编译成test.o
    gcc -o testfun.o test.o -o test //将testfun.o和test.o链接成test

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

3.本周学习总结

    本周通过学习了GCC更加深刻的熟悉了Linux的vim操作以及了解到关于GCC的一些知识,例如GCC官方的定义是:GNU Complier Collection,而不是我们常说的GNU C Complier。所以GCC现在除了支持C外还支持C++/Java/Fortran等语言。GCC其实只是编译系统的驱动程序,通过它来解析不同输入参数,并依次调用预处理器(cpp),编译器(cc1/cc1plus),汇编器(as),链接器(ld)生成一个可执行文件的过程等等。总之,收获很大!

转载于:https://www.cnblogs.com/bingchengde/p/6798409.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值