GCC是GNU的C和C++编译器
GCC编译C语言的4个阶段
①预处理阶段
对include、define等进行处理 -E
②编译阶段
生成.s文件,-S
③汇编阶段
.s→.o -c
④链接阶段
-o
函数库
静态函数库,动态函数库(共享函数库)
GCC基本语法
gcc[options][filenames]
1.编译选项
-o:将产生的可执行文件指定一个文件名代替a.out
例子:gcc -o 1 1.c
-c:仅把C源程序编译为目标代码跳过汇编和链接
例子:gcc -c 1.c
gcc -o test 1.c 2.c 3.c相当于gcc -c 1.c;gcc -c 2.c;gcc -c 3.c;gcc -o test 1.o 2.o 3.o这4条语句
-E:只运行C预编译器
-S:提示GCC在为C代码产生了汇编语言文件后停止翻译
-shared:生成共享目标文件,通常用在建立共享函数库时
-static:禁止使用共享连接
2.警告选项
-Wall:显示所有的警告信息
例子:gcc -Wall -o 1 1.c
-w:不生成任何警告信息,禁止输出警告信息
3.查找选项
-I dir:指定头文件的搜索目录
例子:gcc -I /export/home/ray -o 1 1.c
-L dir:指定库文件的搜索目录
例子:gcc -L /usr/williams/lib -o 1 1.c
4.优化选项
-On:可以使GCC在耗费更多的编译时间和牺牲易调试性的基础上产生更小更快的可执行文件。这些选项中最典型的是-O和-O2选项
5.版本选项
-v:得到目前正在使用的GCC版本及与版本相关的一些信息
-V:如果安装了多个版本的GCC,并且想要强制执行其中的某个版本,可以使用命令通知系统用户要使用的版本
6.调试和剖析选项
-g:提示GCC生成能被GNU调试器使用的调试信息以便调试程序
例子:gcc -g -o 1 1.c
-pg:提示GCC在程序里加入额外的代码,提供进行性能分析所需的信息
注意:使用调试程序选项会使最终生成的二进制文件的大小急剧增加,因此调试选项只有在开发和调试阶段使用
GCC编译C语言的4个阶段
①预处理阶段
对include、define等进行处理 -E
②编译阶段
生成.s文件,-S
③汇编阶段
.s→.o -c
④链接阶段
-o
函数库
静态函数库,动态函数库(共享函数库)
GCC基本语法
gcc[options][filenames]
1.编译选项
-o:将产生的可执行文件指定一个文件名代替a.out
例子:gcc -o 1 1.c
-c:仅把C源程序编译为目标代码跳过汇编和链接
例子:gcc -c 1.c
gcc -o test 1.c 2.c 3.c相当于gcc -c 1.c;gcc -c 2.c;gcc -c 3.c;gcc -o test 1.o 2.o 3.o这4条语句
-E:只运行C预编译器
-S:提示GCC在为C代码产生了汇编语言文件后停止翻译
-shared:生成共享目标文件,通常用在建立共享函数库时
-static:禁止使用共享连接
2.警告选项
-Wall:显示所有的警告信息
例子:gcc -Wall -o 1 1.c
-w:不生成任何警告信息,禁止输出警告信息
3.查找选项
-I dir:指定头文件的搜索目录
例子:gcc -I /export/home/ray -o 1 1.c
-L dir:指定库文件的搜索目录
例子:gcc -L /usr/williams/lib -o 1 1.c
4.优化选项
-On:可以使GCC在耗费更多的编译时间和牺牲易调试性的基础上产生更小更快的可执行文件。这些选项中最典型的是-O和-O2选项
5.版本选项
-v:得到目前正在使用的GCC版本及与版本相关的一些信息
-V:如果安装了多个版本的GCC,并且想要强制执行其中的某个版本,可以使用命令通知系统用户要使用的版本
6.调试和剖析选项
-g:提示GCC生成能被GNU调试器使用的调试信息以便调试程序
例子:gcc -g -o 1 1.c
-pg:提示GCC在程序里加入额外的代码,提供进行性能分析所需的信息
注意:使用调试程序选项会使最终生成的二进制文件的大小急剧增加,因此调试选项只有在开发和调试阶段使用