python - Jamroot (boost-bjam) 与共享库链接

标签 python c++ boost shared-libraries bjam

我正在使用 Jamroot/boost-bjam 为 C++ 代码构建 python 绑定(bind):

alias boost_dependencies
  : /boost/python//boost_python
    /boost/thread//boost_thread
  ;


# Platform architecture provided as an environment variable
import os ; 
local ARCH = [ os.environ ARCH ] ;

# Set up the project-wide requirements that everything uses the
# boost_python library from the project whose global ID is
# /boost/python.
project
  : requirements <library>boost_dependencies
                 <include>../
                 <include>../../
  : requirements 
                 <library-path>../../thirdparty/opencv/lib/
                 <linkflags>-lm 
                 <linkflags>-lpthread
                 <linkflags>-lcrypto
                 <linkflags>-lssl
  ;

# Declare the three extension modules.  You can specify multiple
# source files after the colon separated by spaces.
python-extension test_library : src/Test.cpp

我想链接 opencv 项目 (../../thirdparty/opencv/lib/) 中的共享库,例如 mac 上的 libopencv_core.dylib、libopencv_video.dylib 等。如何在 Jamroot 文件中指定库并安装它们?

最佳答案

我使用 lib 选项解决了这个问题:

lib opencv_core : : <name>libopencv_core <search>../../thirdparty/opencv/build/$(ARCH)/lib/ ;
lib opencv_video : : <name>libopencv_video <search>../../thirdparty/opencv/build/$(ARCH)/lib/ ;
lib opencv_ml : : <name>libopencv_ml <search>../../thirdparty/opencv/build/$(ARCH)/lib/ ;
lib opencv_imgproc : : <name>libopencv_imgproc <search>../../thirdparty/opencv/build/$(ARCH)/lib/ ;
lib opencv_objdetect : : <name>libopencv_objdetect <search>../../thirdparty/opencv/build/$(ARCH)/lib/ ;

# Set up the project-wide requirements that everything uses the
# boost_python library from the project whose global ID is
# /boost/python.
project
  : requirements <library>boost_dependencies
                 <include>../
                 <include>../../
  : requirements <library>../../Common/build/$(ARCH)/lib/libCommon.a
                 <library>../../Vision/build/$(ARCH)/lib/libVision.a
                 <library-path>../../thirdparty/opencv/build/$(ARCH)/lib/
                 <library>../../thirdparty/opencv/build/$(ARCH)/lib/python2.7/site-packages/cv2.so
                 <linkflags>-lopencv_core
                 <linkflags>-lopencv_video
                 <linkflags>-lopencv_ml
                 <linkflags>-lopencv_imgproc
                 <linkflags>-lopencv_objdetect
  ;

关于python - Jamroot (boost-bjam) 与共享库链接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34820343/

相关文章:

javascript - 带有 boost 功能的 Highcharts 无法以小间隔正确渲染

python - tensorflow 自动编码器 : Current implementation does not yet support strides in the batch and depth dimensions

python - 如何使用xml.etree获取元素的xpath

python - 用python : features relevances进行PCA分解

multithreading - boost::线程和模板函数

c++ - 无法创建自定义哈希函数 unordered_map?

python - 让 Python 程序等待

c++ - 为什么在 epoll 中推荐 NON-BLOCKING sockets

c++ - 杀死入侵者在 C++ 中不起作用

c++ - 查找 GSL 矩阵中的行数/列数?