简体   繁体   English

无法使用CMake制作缠绕包装

[英]Couldn't make swig wrapper with CMake

Hi all I trying to build python swig wrapper with CMake. 大家好,我尝试使用CMake构建python swig包装器。 And I have following issues during make: 我在制作过程中遇到以下问题:

/usr/local/lib/libpython2.7.a(abstract.o): relocation R_X86_64_32S against `_Py_NotImplementedStruct' can not be used when making a shared object; recompile with -fPIC

Here is my CMakeLists.txt: 这是我的CMakeLists.txt:

cmake_minimum_required(VERSION 2.8)
FIND_PACKAGE(SWIG REQUIRED)
INCLUDE(${SWIG_USE_FILE})

FIND_PACKAGE(PythonLibs)
INCLUDE_DIRECTORIES(${PYTHON_INCLUDE_PATH})

INCLUDE_DIRECTORIES(${CMAKE_CURRENT_SOURCE_DIR})

SET(CMAKE_SWIG_FLAGS "-Wall" "-c++")

SET_SOURCE_FILES_PROPERTIES(feature.i PROPERTIES CPLUSPLUS ON)
SET_SOURCE_FILES_PROPERTIES(feature.i PROPERTIES SWIG_FLAGS "-includeall")
SWIG_ADD_MODULE(feature_wrapper python feature.i)
SWIG_LINK_LIBRARIES(feature_wrapper ${PYTHON_LIBRARIES})

In your CMakeLists.txt file, add the following line: 在您的CMakeLists.txt文件中,添加以下行:

SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11")

And replace the following line with: 并将以下行替换为:

SWIG_ADD_MODULE(feature python feature.i feature.cxx)
SWIG_LINK_LIBRARIES(feature ${PYTHON_LIBRARIES})

Then you can check it out by doing 然后您可以通过执行检查

python
>>> import feature
>>> print dir(feature)

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM