2

我花了一上午的时间研究如何在 makefile 中在 Linux 下进行共享库安装。

所以没关系;我现在有我的共享对象和一对指向它的软链接,其中一个由 ldconfig 创建,一个由我创建。

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

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

我是否应该像排列共享对象一样排列带有符号链接的静态库,或者实际上只是将一个未经修饰的静态库放入 /usr/local/lib 中?

4

1 回答 1

2

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

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

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

于 2010-01-10T11:54:15.663 回答