如果是 c++,直接将 gcc 改为 g++ 即可。
1. gcc 编译流程
- 预处理,Pre-Processing:gcc -E test.c -o test.i //.i文件
- 编译,Compiling:gcc -S test.i -o test.s //.s文件
- 汇编,Assembling:gcc -c test.s -o test.o //.o文件
- 链接,Linking:gcc test.o -o test //bin文件
2. 编译
gcc -c test.c //.o文件,汇编
- -c:只编译,不链接,生成 .o 文件;
$ gcc -Wall -c file1.c file2.c file3.c
不用指定 .o 文件名,会默认生成 file1.o, file2.o, file3.o
- gcc -o test test.c //bin可执行文件
- gcc test.c //a.out可执行文件
3. 常用参数
-l 参数和-L参数
l 参数就是用来指定程序要链接的库,-l参数紧接着就是库名,那么库名跟真正的库文件名有什么关系呢?
就拿数学库来说,他的库名是m,他的库文件名是libm.so,很容易看出,把库文件名的头lib和尾.so去掉就是库名(gcc xxx.c -lm( 动态数学库))-D
-DMACRO
以字符串“1”定义 MACRO 宏。#define macro-DMACRO=DEFN
以字符串“DEFN”定义 MACRO 宏。
- #define MACRO DEFN