0

我正在使用 autoconf gnu 工具来构建我的产品。它为提到 *.la 的任何库生成共享库和静态库。问题是如果您使用 .la 来链接 Makefile.am 中的二进制文件。它与动态库链接,但是当您对二进制文件使用 ldd 时,它会显示“不是动态可执行文件”,尽管它与共享库链接。我通过在构建二进制文件后删除共享库然后尝试运行二进制文件来证明这一点。它没有找到共享库并且无法运行。另一个问题是如何使用 Makefile.am 方向将库放在指定位置?

4

1 回答 1

3

看起来您在 libtool 创建的包装脚本上运行 ldd。它们用于将已卸载的库与已卸载的可执行文件链接起来。真正的二进制文件放在 .libs 目录中。

您可以通过这种方式将 lib 安装到某个特定位置

mylibrary_LTLIBRARIES = libmylibrary.la
mylibrarydir = ${libdir}/my_plugins/
于 2011-03-10T08:07:53.627 回答