使用libtool链接非libtool库

时间:2013-12-21 15:26:43

标签: c++ shared-libraries libtool

我有一个使用 autotools 设置的项目来构建一个C ++库,包括与Boost.Python的Python绑定。 我在我的系统上有一个Boost.Python的二进制文件,我想链接它:

/usr/lib/libboost_python-py27.so.1.49.0

没有相应的.la文件,所以我想我可以将库的完整路径添加到 libtool 命令,类似于:

bash ./libtool --mode=link g++ -rpath /usr/local/lib src/o1.lo src/o2.lo ... \
     /usr/lib/libboost_python-py27.so.1.49.0 -o libNSM.la

但是 libtool 正在从已发布的 g ++ 命令中丢弃 /usr/lib/libboost_python-py27.so.1.49.0 。如果我手动运行 g ++ ,它可以正常工作。

如何使 libtool 使用本机共享库或处理此类情况的正确方法。我绝对希望用户能够使用他们现有的boost二进制文件。

1 个答案:

答案 0 :(得分:0)

  

我的系统上有一个Boost.Python的二进制文件,我要链接

您是否已安装boost-devel以将符号链接安装到/usr/lib/libboost_python-py27.so.1.49.0

  

没有相应的.la文件

libtool不需要链接。如果安装boost-devel软件包-lboost_python-py27可能就足够了。

  

如何让libtool使用本机共享库或者处理这种情况的正确方法。我绝对希望用户能够使用他们现有的boost二进制文件。

您可能希望查看AX_BOOST_PYTHON中的GNU Autoconf Archive宏 帮助用户为libboost_python设置所需的库(您可能需要的不仅仅是那个特定的宏)。 boost.m4宏似乎也支持python,并且应该提供类似的东西。