Answers:
归档库(.a)是静态链接的,即在gcc中使用-c选项编译程序时。因此,如果库中有任何更改,则需要重新编译并构建代码。
.so(共享库)优于.a库的优点是,它们在运行时即在gcc中创建.o file -o选项后就链接了。因此,如果.so文件中有任何更改,则无需重新编译主程序。但是请确保使用ln命令将主程序链接到新的.so文件。
这将帮助您构建.so文件。 http://www.yolinux.com/TUTORIALS/LibraryArchives-StaticAndDynamic.html
希望这可以帮助。
pic
(位置无关代码)有关吗?
.a是静态库。如果您使用存储在其中的代码,则会从它们中获取并嵌入到自己的二进制文件中。在Visual Studio中,这些将是.lib文件。
.so是动态库。如果使用存储在其中的代码,则不会将其嵌入到您自己的二进制文件中。相反,它只是被引用,因此二进制文件将依赖于它们,并且来自so文件的代码将在运行时添加/加载。在Visual Studio / Windows中,这些文件将是.dll文件(带有包含链接信息的小型.lib文件)。
.lib
文件.dll
称为导入库。
.a文件通常是静态链接(或更准确地说是存档)的
库,
.so是动态链接的库。
要进行移植,您将需要经过编译以使其成为源代码的源代码,或AIX机器上的等效文件。
Wikipedia是此信息的不错的来源。
要了解诸如.a之类的静态库文件,请阅读“ 静态库”
要了解诸如.so之类的共享库文件,请阅读Library_(computing)#Shared_libraries在此页面上的“ 文件命名”部分中也提供了有用的信息。
a
rchive可和其他的s
haredo
bject