我目前正在尝试将C应用程序移植到AIX,我感到很困惑.什么是.a和.so文件以及它们在构建/运行应用程序时如何使用?
我下载了这个:https://github.com/mongodb/mongo-c-driver
现在我正在尝试在我的C程序中使用它,但我不知道如何处理生成的.a文件.这些是什么?我找不到任何信息,甚至在GCC手册中也没有.
我这样构建它:
scons --c99
Run Code Online (Sandbox Code Playgroud)
另外,我可以在C89程序中使用C99库吗?
我读过这.so是一个动态库文件,.a是一个静态库文件.
虽然构建openssl我给了选项./Configure no-shared,它创建了很多.a文件.
所以,我的问题是像apache这样的其他软件包是否可以使用.aopenssl中的文件?
例如libcrypto.a,
如果我正走错路,请有人建议我.
我知道有很多关于共享和静态库的用例的问题,这个问题与此无关.我问的是存储在磁盘上的文件格式的差异.
为什么问题是,两者之间有什么区别?或者它们是否完全相同,仅在使用方面有所不同?
我认为它们不一样,因为在共享库上运行'nm'需要-D标志.显然,它需要做一些不同的事情.为什么?
它们都是ELF文件吗?
共享库可以包含某些依赖路径的唯一区别是什么?