Autoconf,Libtool共享和静态库

时间:2011-03-10 07:05:28

标签: autoconf libtool

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

1 个答案:

答案 0 :(得分:3)

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

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

mylibrary_LTLIBRARIES = libmylibrary.la
mylibrarydir = ${libdir}/my_plugins/