2016-12-08 2 views
0

Привет всем Я пытаюсь создать обертку python swig с CMake. И я следующие вопросы во время выпуска:Не удалось сделать swig-обертку с CMake

/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 

Вот мой 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}) 

ответ

0

В файле CMakeLists.txt, добавьте следующую строку:

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

И заменить следующие линии с:

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

Затем вы можете проверить это, сделав

python 
>>> import feature 
>>> print dir(feature) 
Смежные вопросы