简单快速了解gcc(新手入门)

时间:2022-08-13 12:57:43

刚安装上Linux系统,安好Vim的时候,还不知道该怎么用它,后来基本上用的很多的就是 vim xxx.c、gcc

xxx.c、./aout三步走,gcc的选项很多,全部记住会很难,所以我挑出来一些常用的选项,把这些整理下来

(其实这些应该是早早就应该了解的,一直拖到现在,实在不应该)

1.gcc简介

gcc命令使用GNU推出的基于C/C++的编译器,是开放源代码领域应用最广泛的编译器,具有功能强大,

编译代码支持性能优化等特点。现在很多程序员都应用GCC,怎样才能更好的应用GCC。目前,GCC可

以用来编译C/C++、FORTRANJAVA、OBJC、ADA等语言的程序,可根据需要选择安装支持的语言

2.gcc工作步骤

gcc/g++ 在执行编译工作的时候,总共需要 4 步

(1)预处理,生成.i的文件[调用预处理器cpp]

(2)将预处理后的文件转换成汇编语言,生成文件.s[调用编译器 gcc/egcs]

(3)由汇编变为目标代码(机器代码)生成.o的文件[调用汇编器as]

(4)连接目标代码,生成可执行程序[调用链接器ld]

3.gcc语法:

gcc (选项) (参数)

选项:

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

-E:仅执行编译预处理;

-S:将C代码转换为汇编代码; -

-wall:显示警告信息;

-c:仅执行编译操作,不进行连接操作

参数:

C源文件:指定C语言源代码文件

4. gcc常用选项

(1)常规选项

无选项编译链接

gcc   test.c

将test.c预处理、汇编、编译并链接形成可执行文件。这里未指定输出文件,结果会在与helloworld.c相同

的目录下产生一个a.out的可执行文件。

选项 -o

gcc test.c -o test

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

选项-S

gcc -S test.c

产生一个名字为test.s的汇编源文件

选项 -c

gcc -c test.c

只编译,不链接,生成一个名为test.o的obj文件

选项-E

gcc -E test.c

只对文件进行预处理,不生成文件,预处理结果会显示在屏幕上,如需要保存可以重定向

(2)优化选项

选项 -O

gcc -O test.c

产生一个经过优化,名为a.out的可执行文件,也可以同时使用-o选项,以指定输出文件名

选项-O2

gcc -O2 test.c

进一步优化,产生一个经过最大优化,名为a.out的可执行文件

(3)调试选项

选项-g

gcc -g test.c

在编译的时候,产生调试信息,生成供gdb调试器可用的可执行文件

选项-pg

gcc -pg test.c

产生供gpro剖析用的可执行文件

5.多源文件编译方法

如果有多个源文件,基本有两种编译方法:

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

多个文件一起编译

gcc test1.c test2.c -o test

将test1.c和test2.c分别编译后链接生成test可执行文件

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

gcc -c test1.c                        //将test1.c编译成test1.o
gcc -c test2.c //将test2.c编译成test2.o
gcc -o test1.c test2.c -o test //将test1.c和test2.c链接成test</span>

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

文件,未修改的文件不用重新编译