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

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)生成一个可执行文件的过程等等。总之,收获很大!

posted on 2017-05-02 20:55  邴成德  阅读(109)  评论(0)    收藏  举报