介绍
gcc命令使用GNU推出的基于C/C++的编译器,是开放源代码领域应用最广泛的编译器,具有功能强大,编译代码支持性能优化等特点。现在很多程序员都应用GCC,怎样才能更好的应用GCC。目前,GCC可以用来编译C/C++、FORTRAN、JAVA、OBJC、ADA等语言的程序,可根据需要选择安装支持的语言。

gcc过程
安装
g++安装
1 2 3 4 5 6 7
|
yum install gcc-c++ libstdc++-devel
yum install gcc yum install g++
|
用法
选项
选项 |
描述 |
-o |
指定生成的输出文件,(i、s、o、可执行文件等) |
-E |
只激活预处理,生成扩展名为.i的预处理后文件 |
-S |
只激活预处理和编译,生成扩展名为.s的汇编代码文件 |
-c |
只激活预处理、编译和汇编,生成.o 目标代码文件 |
-Wall |
显示警告信息; |
-g |
在目标文件中嵌入调试信息,以便gdb之类的调试程序调试 |
-On(O[优化等级]) |
优化程序,程序优化后执行速度会更快,程序的占用空间更小。 |
-pipe |
加快编译的速度,节约时间 |
-Idir(I[目录名]) |
将dir目录加入搜索头文件的目录路径 |
-Ldir(L[目录名]) |
将dir目录加入搜索库的目录路径 |
-llib |
链接lib库 |
-O
gcc 提供了三个级别的优化选项: O1 O2 O3,理论上-O3 选项可以生成执行效率最高的代码,但以为着更大的风险。通常, -O1 -O2 选项就可以满足绝大多数的优化要求。如, Nginx 编译就采用-O1
头文件与库位置
1 2 3 4
| /usr/include /usr/local/include/ /usr/lib /usr/local/lib
|
参数
例子
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
| gcc -E hello.c -o hello.i
gcc -S hello.i -o hello.s gcc -S hello.c -o hello.s
gcc -c hello.s -o hello.o gcc -c hello.c -o hello.o
gcc hello.o -o hello gcc hello.c -o hello
gcc hello.c -o hello -lm
|