Я пытаюсь построить inria Graphite на моем Ubuntu, который работает в симуляторе VirtualBox, я следую инструкциям и устанавливаю python-dev
пакеты, но когда я запускаю cmake, все равно получаю ошибку:
CMake Error at /usr/share/cmake-2.8/Modules/FindPackageHandleStandardArgs.cmake:108 (message):
Could NOT find PythonLibs (missing: PYTHON_LIBRARIES PYTHON_INCLUDE_DIRS)
(Required is at least version "3.2")
Call Stack (most recent call first):
/usr/share/cmake-2.8/Modules/FindPackageHandleStandardArgs.cmake:315 (_FPHSA_FAILURE_MESSAGE)
/usr/share/cmake-2.8/Modules/FindPythonLibs.cmake:208 (FIND_PACKAGE_HANDLE_STANDARD_ARGS)
src/packages/OGF/gel_python3/CMakeLists.txt:11 (FIND_PACKAGE)
Я проверил /usr/lib/
и найти
tintin@tintin-VirtualBox:/usr/lib$ find . -name "libpython*"
./x86_64-linux-gnu/libpython3.4m.so.1.0
./x86_64-linux-gnu/libpython2.7.so.1.0
./x86_64-linux-gnu/libpython3.4m.a
./x86_64-linux-gnu/libpython2.7.a
./x86_64-linux-gnu/libpython3.4m.so
./x86_64-linux-gnu/libpython2.7.so
./x86_64-linux-gnu/libpython2.7.so.1
./x86_64-linux-gnu/libpython3.4m.so.1
так почему cmake не может найти PythonLibs, или как мне с этим бороться?
sudo apt-get install python-dev
apt-get install python3-dev
.python-dev
иpython3-dev
являются метапакетами, которые тянут самую последнюю версию разработки для выбранного Python.Кажется, проблема в том, что Ubuntu 14.04 устанавливает Python 3.4 по умолчанию, а версия CMake из Ubuntu (2.8) выполняет поиск только до Python 3.3. Обходной путь должен добавить
set(Python_ADDITIONAL_VERSIONS 3.4)
передfind_package
утверждением. Обратите внимание, что я подал ошибку об этой проблеме.Начиная с CMake 3.0, CMake выполняет поиск до Python 3.4 , поэтому установка этой версии вручную также должна решить проблему.
источник
Для меня проблема была плохой кеш
Убрал кеш со старой версией 2.7 и позволил найти 3.2 в моем случае.
Cmake я использовал
источник
У меня недавно была похожая проблема с 64-битной Ubuntu 14.04; по-видимому, CMake по умолчанию не смотрит на зависимые от архитектуры папки установки:
(из CMake 2.8.12 онлайн-документация команды find_package )
Решение состоит в установке этого CMAKE_LIBRARY_ARCHITECTURE в корневом файле CMakeLists.txt проекта (в вашем случае это будет редактирование src / packages / OGF / gel_python3 / CMakeLists.txt) перед вызовом find_package для PythonLibs; например:
Это сработало в моем случае.
источник