许久不进行c/c++开发了,许久没用vc或gcc了,对文件格式的含义开始混淆了,必须要总结了。
win和elf的对应关系,说其实谁先谁后我真不知道,管它呢。
在linux下,以下介绍各种ELF门下的文件格式:
.o 是“relocatable”文件,即编译后生成的目标文件。
对应于win中的.obj,二进制格式,但是不可执行。
.a 是“archive”文件,使用“ar”命令创建的归档格式,作为静态连接库。可以使用ar -x 命令把.a文件进行释放,一般可以看到很多的.o文件,其实,.a就是一堆.o,作用是一样的。
以上格式的文件都是在编译-连接过程中被包含到可执行文件中的。
.so是“shared object”,即共享链接库,不被包含在可执行文件中,在运行是通过系统动态地加载。对应win中的dll。一般动态/共享库的加载按照PATH的路径进行寻找。
阅读(853) | 评论(0) | 转发(0) |