gcc
:Linux
下的一款编译器。
gcc
工作流程:
完整编译流程:
创建一个c语言
源文件:
gcc -E hello.c -o hello.i
(头文件展开,进行源文件中的宏替换,注释过滤)
gcc -S hello.i -o hello.s
(将源文件编译成汇编文件)(这一阶段耗时最大)
gcc -c hello.s -o hello.o
(将汇编文件转换成二进制文件)
gcc hello.o -o hello
(将二进制文件打包成可执行文件)
简单编译方式:
gcc hello.c -o hello
(将hello.c
文件直接生成可执行文件hello
)
gcc hello.c
(默认会将hello.c
转换成可执行文件并命名为a.out
)
gcc编译中的各种参数:
gcc hello.c -I path -o app
(指定头文件路径为path
将c语言
源文件hello.c
编译称为可执行文件app
)(低版本gcc
中-I
和path
中不许有空格)(在编译时自己写的有文件路劲要正确包含或者指定头文件目录)
gcc hello.c -o hello -D DEBUG
(在编译时加上一个DEBUG
宏,可用于测试程序,在程序每一条输出语句用该宏包裹,编译时加宏就不用在文件里加宏)
gcc hello.c -o hello -O1
(在生成可执行文件过程中将代码优化)(优化等级为0,1,2,3
。其中0
为不优化,3
为最高优化等级)
gcc hello.c -o hello -Wall
(输出可对代码进行优化的提示信息,如某个变量未使用过)
gcc hello.c -o hello -g
(在程序中添加一些调试信息)(生成的程序会大一些)(gdb调试
的时候必须加此参数)