Autoconf,Libtool共享和静态库

问题描述 投票:0回答:1

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

autoconf libtool
1个回答
3
投票

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

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

mylibrary_LTLIBRARIES = libmylibrary.la
mylibrarydir = ${libdir}/my_plugins/
© www.soinside.com 2019 - 2024. All rights reserved.