Tôi không thể xây dựng mô-đun trình bao bọc Python cho thư viện C của mình qua CMake và Swig cho Python3. Mọi thứ hoạt động tốt cho Python2.x nhưng có vẻ như CMake không thể tìm thấy Python3. Tôi đã nhìn xung quanh và thử một vài thứ.CMake có hỗ trợ Python3 không?
Ví dụ: python
liên kết thực thi của tôi với Python3, như tôi đã đọc, CMake sẽ tìm thấy phiên bản này trước tiên.
Xin vui lòng xem ở đây phần SWIG của CMakeLists.txt
:
FIND_PACKAGE(SWIG REQUIRED)
INCLUDE(${SWIG_USE_FILE})
FIND_PACKAGE(PythonInterp 3)
FIND_PACKAGE(PythonLibs 3)
FIND_PATH(PYTHON_INCLUDE_PATH Python.h
/usr/include
/usr/local/include)
INCLUDE_DIRECTORIES(${PYTHON_INCLUDE_DIRS})
INCLUDE_DIRECTORIES(${CMAKE_CURRENT_SOURCE_DIR})
SET(CMAKE_SWIG_FLAGS "")
SET_SOURCE_FILES_PROPERTIES(kissCT3.i PROPERTIES CPLUSPLUS ON)
#SET_SOURCE_FILES_PROPERTIES(kissCT3.i PROPERTIES SWIG_FLAGS "-includeall -py3")
SWIG_ADD_MODULE(kissCT3 python kissCT3.i)
SWIG_LINK_LIBRARIES(kissCT3 libct2d matio kissfft ${PYTHON_LIBRARIES})
Thật không may, sản lượng sau khi gọi cmake cho thấy rằng chỉ python2.7 được tìm thấy:
-- Found SWIG: /usr/bin/swig2.0 (found version "2.0.4")
-- Found PythonInterp: /usr/bin/python2.7 (Required is at least version "3")
-- Found PythonLibs: /usr/lib/libpython2.7.so (Required is at least version "3")
-- Configuring done
-- Generating done
tôi sẽ đề nghị bạn nên thực hiện phiên bản riêng của bạn về module công cụ tìm cho python hỗ trợ python3 và đưa rằng trong cùng một thư mục như CMakelists.txt của bạn tuy nhiên nó xuất hiện rằng cmake-2.8.11.X có hỗ trợ trực tiếp cho python3. Bạn có một số phiên bản cũ của cmake? – drescherjm
Tôi đang sử dụng phiên bản cmake 2.8.5. Vì vậy, đây có thể là vấn đề, tôi sẽ xem xét nó, cảm ơn! – mijc