2016-12-08 8 views
0

こんにちは、私はCMakeでpython swigラッパーをビルドしようとしていました。そして、私はメイク中に問題を次のようしている。ここでCMakeでswigラッパーを作れませんでした

/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です:あなた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

、次の行を追加します。

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) 
関連する問題