4
我試圖用cmake構建一個python擴展。這是cmake的列表:Mac OS X上的Cmake,全路徑的鏈接庫
cmake_minimum_required(VERSION 2.8)
PROJECT(drtile)
set(CMAKE_MODULE_PATH ${CMAKE_CURRENT_SOURCE_DIR})
find_package(Vigra REQUIRED)
find_package(Boost COMPONENTS python REQUIRED)
find_package(PythonLibs REQUIRED)
find_package(Numpy REQUIRED)
include_directories(
${VIGRA_INCLUDE_DIR}
${PYTHON_NUMPY_INCLUDE_DIR}
${Boost_INCLUDE_DIR}
${PYTHON_INCLUDE_DIRS}
${PYTHON_INCLUDE_PATH}
)
add_library(drtile SHARED drtile.cpp)
message("xxx ${Boost_PYTHON_LIBRARY} ${VIGRA_NUMPY_CORE_LIBRARY}${VIGRA_NUMPY_IMPEX_LIBRARY}")
target_link_libraries(drtile ${Boost_PYTHON_LIBRARY} ${VIGRA_NUMPY_CORE_LIBRARY} ${PYTHON_LIBRARY})
IF(WIN32)
SET_TARGET_PROPERTIES(drtile PROPERTIES OUTPUT_NAME "drtile" PREFIX "" SUFFIX ".pyd")
ELSE()
SET_TARGET_PROPERTIES(drtile PROPERTIES OUTPUT_NAME "drtile" PREFIX "" SUFFIX ".so")
ENDIF()
庫編譯和鏈接正確,但是當我看喜歡圖書館與otool我得到:
otool -L drtile.so
drtile.so:
/Users/lfiaschi/phd/workspace/lazyflow/lazyflow/drtile/drtile.so (compatibility version 0.0.0, current version 0.0.0)
libboost_python.dylib (compatibility version 0.0.0, current version 0.0.0)
vigranumpycore.so (compatibility version 0.0.0, current version 0.0.0)
/Users/lfiaschi/Library/Frameworks/Python.framework/Versions/2.7/Python (compatibility version 2.7.0, current version 2.7.0)
/usr/lib/libstdc++.6.dylib (compatibility version 7.0.0, current version 7.9.0)
/usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 125.2.11)
我怎樣才能獲得的CMake到drtile鏈接。所以完整路徑爲vigranumpycore.so和libboost_python.dylib? 謝謝!
不幸的是,儘管這看起來像是閱讀CMAKE文檔的正確解決方案,但它沒有任何效果。我真的不明白爲什麼...... –
難道這取決於vigranumpycore.so和libbost_python.dylib安裝在非系統位置的事實? –