后缀
.c 源文件
.s 汇编文件 gcc -S main.c 生成汇编文件
.o 目标文件 编译后的二进制文件
.h 头文件 生命模块的对外接口
.a 静态连接库
.so 动态连接库
无 ELF文件 可执行文件
生成可执行文件流程
.c 添加 .h 文件作为外部模块接口声明来调用
编译生成目标文件 gcc -c xxx.c 生成 xxx.o
连接目标文件 生成可执行文件 ld xxx.o xxx1.x -o xxx
运行可执行文件 ./xxx
静态库生成及连接过程
编译生成目标文件 gcc -c static_lib.c 生成 static_lib.o
打包目标文件位静态文件库 ar rcs static_lib.a static_lib.o static_lib1.o static_lib2.o 将多个目标文件 打包为 static_lib.a
使用静态库 gcc xxx.c -lstatic_lib.a -o app -l 参数指定静态库
动态库生成及连接过程
编译源码生成动态库 gcc -shared -fPIC -o shared_lib.so share_lib.c
使用动态库编译可执行文件 gcc main.c ./shared_lib.so -o app