1.复习GCC编译器的用法

欲善其工,那么要先利其器。在这个C语言巩固与提高的阶段中,如果想要更好的达成预期目标,首先就要熟练掌握GCC编译器的用法。以下是GCC相关知识:

GCC使用语法

gcc 选项 参数

选项

-o : 指定生成的输出文件

-E : 只进行编译预处理

-S : 讲C代码转化为汇编代码

-c : 只进行编译操作,不进行链接操作

-wall : 显示警告信息

-O : 编译优化

参数

C源文件:就是需要编译的C语言代码文件

实例

有一源文件名为test.c

1无编译选项

gcc test.c

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

2.有选项-o

gcc test.c -o test

将test.c预处理,汇编,编译,链接后形成名为test的可执行文件。-o选项用来指定输出的文件名。


3.选项E

gcc -E test.c -o test.i

将test.c预处理后输出test.i文件

4.选项-S

gcc -S test.i

将预处理输出文件test.i汇编为test.s文件

5.选项-c

将汇编输出文件test.s编译输出test.0文件

无选项链接

gcc test.o -o test

将编译输出文件test.o链接为最终的可执行文件test

从上述例子可以看出,c->d->e->无选项链接这几步操作实现了将C语言源文件编译为最终可执行文件的目的。也就是说,一个C语言源文件需要经过预处理,汇编,编译,链接这四个步骤才能成为最终的可执行文件


上述几个是基本操作,不过若想成为一个合格的C语言码农,你还得知道以下几点:

6.选项-O

gcc -O1 test.c -o test

将test.c使用编译级别为1的方式编译为test可执行文件,gcc中级别为1-3,级别越大,程序的优化效果就越好,但相应的编译时间越长。(注:编译选项为大O,而编译选项为小o)

7.多文件编译方法

若工程较大,存在多个.c文件。那么有以下两种编译方法:

假设有两个源文件为test1.c和test2.c

1.多个文件一起打包编译

gcc test1.c test2.c -o test

将两个文件分别编译后,链接为可执行文件test

2.单独编译各个文件,之后将输出的.o文件链接起来

gcc -c test1.c #将test1编译为test1.o

gcc -c test2.c #同上

gcc -o test1.o test2.o -o test #将两个.o文件链接为test可执行文件

注:第一种方式是将所有文件重新编译然后链接,而第二种方式可以有所选择,可以针对性的编译有修改的文件,无修改的不用编译。

最新文章

  1. 四、Handler(WSGIHandler)
  2. Populating Next Right Pointers in Each Node
  3. JavaEE web.xml 中ContextLoaderListener的解析
  4. android Mvp简单实用
  5. w3chtml页面和css书写规范
  6. 利用matplotlib库和numpy库画数学图形
  7. 内置函数&匿名函数
  8. PC装MAC(VM虚拟机)想体验苹果系统的福利
  9. python入门学习:4.if语句
  10. (转)EOSIO开发(四)- nodeos、keosd与cleos
  11. SpringBoot配置文件的加载位置
  12. GDB 调试 ---转 比较全的东东
  13. 【转】Java学习---HashMap的工作原理
  14. AndroidManifest.xml文件解析(转帖)
  15. Dos命令的介绍
  16. POJ 3253 Fence Repair STL 优先队列
  17. POJ 2301
  18. notification的创建及应用
  19. mac 下 python链接mysql
  20. 在ubuntu 上安装sublime

热门文章

  1. fopen与读写的标识r,r+,rb+,rt+,w+.....
  2. 很好用的canvas
  3. Spring的Bean的生命周期以及Bean的后置处理器
  4. Linux C 获取 文件的大小
  5. local unversioned, incoming add upon update问题
  6. Mongodb系列文章
  7. Writing a Discard Server 写个抛弃服务器 世上最简单的协议
  8. 安装和使用PhantomJS
  9. django高级应用(分页功能)
  10. 剑指Offer——数组中只出现一次的数字