Я пытался собрать проект C ++, используя cmake на Windows. Но я ловлю ошибку:
CMake Error at C:/Program Files (x86)/CMake/share/cmake-3.3/Modules/FindPackageH
andleStandardArgs.cmake:148 (message):
Could NOT find PythonLibs (missing: PYTHON_LIBRARIES) (found suitable
version "3.4.1", minimum required is "3.4")
Call Stack (most recent call first):
C:/Program Files (x86)/CMake/share/cmake-3.3/Modules/FindPackageHandleStandard
Args.cmake:388 (_FPHSA_FAILURE_MESSAGE)
C:/Program Files (x86)/CMake/share/cmake-3.3/Modules/FindPythonLibs.cmake:205
(FIND_PACKAGE_HANDLE_STANDARD_ARGS)
CMakeLists.txt:8 (find_package)
Т.е. cmake не смог найти PYTHON_LIBRARIES
цель. Но Python 3.4.1 установлен на моем компьютере. Моя ОС — Windows 7 preofessional x64. Если я строю этот проект на Linux, он работает нормально.
Где проблема? Как я могу помочь найти PYTHON_LIBRARIES
?
Вот мой CMakeLists
файл:
cmake_minimum_required(VERSION 3.2)
set(CMAKE_VERBOSE_MAKEFILES on)
project(Proj)
set(SOURCE_FILES repeating_count.cpp)
set(CMAKE_VERBOSE_MAKEFILE on)
set(Python_ADDITIONAL_VERSIONS 3.4.1)
find_package(PythonLibs 3.4 REQUIRED)
include_directories(${PYTHON_INCLUDE_DIRS})
python_add_module(repeating_count repeating_count.cpp)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11")
add_executable(Proj ${SOURCE_FILES})
target_link_libraries(Proj ${PYTHON_LIBRARIES})
Я решил свою проблему. Мой генератор Cmake по умолчанию — Visual Studio 12 2013.
Итак, если я изменю его на Visual Studio 12 2013 Win64 (используя Cmake GUI, например), он находит PYTHON_LIBRARIES
цель и работает отлично.
Попробуйте с:
find_package(PythonLibs 3.4.1 EXACT REQUIRED)
вместо
find_package(PythonLibs 3.4 REQUIRED)