`.o`,`.a` 和 `.so` 文件
.o
,.a
和 .so
文件
.a
(archive)/lib 静态链接库文件,静态是指生成运行程序是已经打入程序里面.so
(shared object)/dll 动态链接库文件,程序运行时,从环境中去找,然后动态加入到程序里.o
(object)/object 目标文件,由源码到运行程序编译过程中的中间产物。
其中 .a/lib
或 .so/dll
就是一堆 .o/object
文件的组合。
之所以有中间产物,是因为由源码 C++ 到可执行文件不能一步到位。
因为往往可执行程序由诸多源码编译而来,编译器一次处理一个源文件,将其编译成蹭产物 .o
。最后再一 link 成一个可执行文件。