J'essaie de construire inria Graphite sur mon ubuntu qui s'exécute dans un simulateur VirtualBox, je suis les instructions et j'installe les python-dev
packages, mais quand je lance cmake, j'ai toujours une erreur:
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)
J'ai vérifié /usr/lib/
et trouvé
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
alors pourquoi cmake ne peut pas trouver les PythonLibs, ou comment dois-je gérer cela?
sudo apt-get install python-dev
apt-get install python3-dev
.python-dev
etpython3-dev
sont des métapaquets qui tirent le développement le plus récent en amont pour le Python sélectionné.Le problème semble être qu'Ubuntu 14.04 installe Python 3.4 par défaut et que la version CMake d'Ubuntu (2.8) ne recherche que jusqu'à Python 3.3. Une solution de contournement consiste à ajouter
set(Python_ADDITIONAL_VERSIONS 3.4)
avant l'find_package
instruction. Notez que j'ai déposé un bogue à propos de ce problème.Depuis CMake 3.0, CMake recherche jusqu'à Python 3.4 , donc l'installation manuelle de cette version devrait également résoudre le problème.
la source
Pour moi, le problème était un mauvais cache
Supprimé le cache avec l'ancienne version 2.7 et lui a permis de trouver 3.2 dans mon cas.
Le cmake que j'ai utilisé est
la source
J'ai récemment eu un problème similaire avec Ubuntu 14.04 64 bits; apparemment, CMake ne regarde pas par défaut les dossiers d'installation dépendants de l'architecture:
(à partir de la documentation en ligne de CMake 2.8.12 de la commande find_package )
Une solution consiste à définir cette CMAKE_LIBRARY_ARCHITECTURE dans le fichier racine du projet CMakeLists.txt (dans votre cas, ce serait éditer src / packages / OGF / gel_python3 / CMakeLists.txt) avant d'appeler find_package pour PythonLibs; par exemple:
Cela a fonctionné dans mon cas.
la source