.o.a.so 文件

  • .a(archive)/lib 静态链接库文件,静态是指生成运行程序是已经打入程序里面
  • .so(shared object)/dll 动态链接库文件,程序运行时,从环境中去找,然后动态加入到程序里
  • .o(object)/object 目标文件,由源码到运行程序编译过程中的中间产物。

其中 .a/lib.so/dll 就是一堆 .o/object 文件的组合。

之所以有中间产物,是因为由源码 C++ 到可执行文件不能一步到位。

因为往往可执行程序由诸多源码编译而来,编译器一次处理一个源文件,将其编译成蹭产物 .o。最后再一 link 成一个可执行文件。

相关资源