我有一个使用 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二进制文件。
答案 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,并且应该提供类似的东西。