Linux下的静态库安装 - 它应该类似于动态库安装吗?

时间:2010-01-10 11:46:27

标签: linux makefile install shared-libraries static-libraries

我花了一个上午的时间来弄清楚makefile中如何在Linux下进行共享库安装。

那很好;我现在有了我的共享对象和一对软链接,其中一个由ldconfig创建,一个由我创建。

现在,我还可以将我的库构建为静态库。

当我检查/ usr / lib时,我看到那里的.a文件就在那里。没有符号链接,文件名中没有版本和版本编号的排列。

我是否应该按照与安排共享对象相同的方式安排带有符号链接的静态库,或者实际上习惯上只将静态库放在/ usr / local / lib中?

1 个答案:

答案 0 :(得分:1)

与共享库不同,放入/lib的静态库不参与动态链接依赖项解析。它们仅在您构建应用时使用。因此,无需在其文件名中插入符号链接和精确版本号。

当您将应用程序与静态库链接时,链接器只会嵌入在/lib文件夹中找到的代码。如果在另一个系统上,具有相同名称的静态库会有所不同,那么您的应用程序甚至不会知道这一点。因为它包含了编译的静态库的代码,不需要在它运行的系统中查找它。

因此,静态库的安装应该与共享库的安装不同:实际上不需要/lib目录中的细粒度版本。