Linux之gcc与g++编译器
Posted CodeBeauty
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux之gcc与g++编译器相关的知识,希望对你有一定的参考价值。
1.gcc编译器
gcc编译器开发初期定位为C编译器(GNU C Compiler),但随着时间的发展gcc编译器能够支持多种语言。
1.1 gcc编译器的使用
假如我们已经有了.c文件名称为Hello.c,可以使用下面的语句编译该文件:
$ gcc Hello.c
该语句执行成功后,会在当前目录下生成可执行文件名称为a.out(默认),我们可以使用下面的语句来运行该可执行文件:
$ ./a.out
当然我们不想使用默认的名称,这样不够直观,我们可以在使用gcc进行编译时指定其可执行文件名:
$ gcc -o hello Hello.
默认的a.out文件名就被替换成了“hello”;
1.2 编译有关选项
在很多情况下程序员不是要一个可执行文件这么简单,一些场合需要目标代码,有些场合需要汇编代码等等,下面列举出编译相关选项:
-c 只激活预处理,编译和汇编,生成扩展名为.o的目标代码文件;
-S 只激活预处理和编译,生成扩展名为.s的汇编代码文件;
-E 只激活预处理,并将结果输出至标准输出
-g 为调试程序生成相关信息(如gdb)
1.3 优化选项
gcc提供了3个级别的优化给程序员进行选择,从低到高依次是-O1,-O2和-O3。从理论上来将-O3能生成执行效率最高的代码,然而优化程度越高风险越高,一般情况下-O2使用较多。事实上三个级别的优化是对多种具体优化的打包,具体的可以查看gcc官方手册,另外可以使用-march选项,为特定的CPU编译二进制代码,但不是特殊场合不要使用-march选项。
$ gcc -O2 -o hello Hello.c
2.g++编译器
gcc虽然也能编译C++源文件,但是其不能自动和C++库进行连接,所以通常使用g++来完成C++源文件的编译和链接
g++编译器的使用
g++编译器的使用和gcc基本一致。
以上是关于Linux之gcc与g++编译器的主要内容,如果未能解决你的问题,请参考以下文章
《Linux从0到99》四 Linux编译器(gcc/g++)和调试器(gdb)
Linux从青铜到王者第四篇:Linux开发项目之编译器和调试器