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可执行文件
注:第一种方式是将所有文件重新编译然后链接,而第二种方式可以有所选择,可以针对性的编译有修改的文件,无修改的不用编译。