GCC实用干货
1.GCC
-
编译C语言用gcc,编译C++用g++
-
文件类型及后缀
-
原代码:test.c 、test.cpp
-
预处理后的代码:test.i
-
汇编代码:test.s
-
二进制文件:test.o
(可执行文件:.out 、.exe)
-
核心关系:通过编译,成为汇编代码,再通过汇编,成为二进制文件
-
-
文件之间的关系和它们的指令(不要死记硬背)
- gcc test.c :生成 默认的可执行文件a.out
- gcc test.c -o abc :生成 名为 abc 的可执行文件
- gcc test.c -E -o test.i:生成 名为 test.i 的预处理文件
- gcc test.i -S -o test.s:生成 名为 test.s的汇编文件
- gcc test.s -c -o test.o:生成 名为 test.o的二进制文件
- gcc test.s -s -o test.o:生成吗名为test.o的二进制文件并链接,及生成名为test.o的可执行文件
- gcc test.c -c -o test.o:可以直接从原代码变成可执行文件,中间过程都是可以跳跃的(直接跨到可执行文件的话,-c也可省略)
- 补充:
- gcc test.c -Wall:生成警告信息
- gcc test.c -On:n为(0,1,2,3),表示不同等级的优化,主要为了防止反汇编(O1是默认等级)
- gcc test.c -std=99:表示编译C语言的版本为C99