案例 | ||
.c源代码 | ||
-E预处理后 | .i文件 | gcc -E test.c -o test.i |
-S编译后 | .s文件 | gcc -S test.i -o test.s |
-c汇编 | .o文件 库文件 | gcc -c test.s -o test.o |
-I 链接后 | 目标文件 |
gcc 不使用 –E、–S 和 –c选项,则会依次自动执行预处理、编译和汇编。
头文件#include <stdio.h>
动态链接库.so
静态链接库.a
链接库文件以lib开头
-l 选项后紧跟库文件去掉 lib 前缀的主名。例如:gcc -lpthread -lm test.c -o test(调用了libpthread.so和libm.so两个动态链接库)
gcc链接时默认使用动态库,对应 -Bdynamic 选项;若要链接静态库,需要使用 -Bstatic 选项
例如:gcc -Bstatic -lA -lC test.c -o test(调用了libA.a和libC.a两个静态链接库)
gcc -Bstatic -lA -Bdynamic -lC(调用了静态链接库libA.c和动态链接库libC.so)