Ne peut pas spécifier BOOST_ROOT pour cmake
J'ai plusieurs versions de Boost installé (Windows 7/MinGW). J'ai besoin d'utiliser un particulier (1.53.0).
J'ai défini BOOST_ROOT dans le CMakeFiles.txt fichier: SET(BOOST_ROOT C:/boost_1_53_0/)
, mais je reçois ce message d'erreur:
> cmake .
BOOST_ROOT=C:/boost_1_53_0/
CMake Error at C:/Program Files (x86)/CMake 2.8/share/cmake-2.8/Modules/FindBoost.cmake:1191 (message):
Unable to find the requested Boost libraries.
Boost version: 1.48.0
Boost include path: C:/Boost/include/boost-1_48
Detected version of Boost is too old. Requested version was 1.53 (or
newer).
The following Boost libraries could not be found:
boost_filesystem
No Boost libraries were found. You may need to set BOOST_LIBRARYDIR to the
directory containing Boost libraries or BOOST_ROOT to the location of
Boost.
J'ai également défini BOOST_ROOT comme une variable d'environnement, mais avec le même résultat.
Pourquoi est cmake toujours à la recherche de l'ancienne version?
S'il vous plaît avoir un coup d'oeil : Comment puis-je obtenir cmake pour trouver mon booster l'installation ? stackoverflow.com/questions/3016448/...
Malheureusement j'ai besoin de le construire sur Windows 7.
Essayez d'exécuter
dans mon CMakeLists.txt le fichier que j'ai:
C'était juste un exemple de ce qui pourrait aller mal. Ce serait plus facile à déboguer si vous collez la sortie de l'exécution de
Malheureusement j'ai besoin de le construire sur Windows 7.
Essayez d'exécuter
cmake . -DBoost_DEBUG=ON
pour obtenir plus d'infos à propos de ce que CMake est en train de faire. Si ce n'est pas de trouver une version de boost dans le BOOST_ROOT
chemin d'accès spécifié, il va porter sur la recherche dans les dossiers système. La version 1.53 peut ne pas être approprié par exemple, si vous avez compilé stimuler le partage des libs, mais dans votre CMakeLists.txt vous n'avez pas spécifié set(Boost_USE_STATIC_LIBS OFF)
.dans mon CMakeLists.txt le fichier que j'ai:
SET(Boost_USE_STATIC_LIBS ON)
et SET(Boost_USE_STATIC_RUNTIME ON)
.C'était juste un exemple de ce qui pourrait aller mal. Ce serait plus facile à déboguer si vous collez la sortie de l'exécution de
cmake . -DBoost_DEBUG=ON
et également fournir le nom complet de la boost 1.53 bibliothèques (les noms donnent généralement un bon peu d'info au sujet de la façon dont les bibliothèques ont été construites)OriginalL'auteur Pietro | 2013-06-14
Vous devez vous connecter pour publier un commentaire.
Si vous utilisez une version compilée de bibliothèques Boost pour Visual Studio, ils viennent dans un type particulier de MSVC de la version et du nombre de bits. J'avais besoin de point de CMake à cet endroit précis, dans mon cas, le réglage de BOOST_ROOT à C:/local/boost_1_59_0 et BOOST_LIBRARYDIR à C:/local/boost_1_59_0/lib64-msvc-11.0 aidé de.
OriginalL'auteur Liosan
Essayez ceci:
Fonctionne pour moi! À noter qu'après quelques essais et erreurs, il peut être nécessaire de nettoyer le répertoire de construction. ( J'ai eu CMake Erreur: Le répertoire source "/mon/boost/chemin d'accès" ne semble pas contenir de CMakeLists.txt. avant le nettoyage )
OriginalL'auteur Magog
J'ai aussi eu du mal avec ce même problème pendant un certain temps. Si c'est le même problème que j'ai eu, ensuite, le problème est que vous ne sont pas en cours d'exécution le CMake configuration complètement nouveau, sans cache. Une fois qu'il s'exécute une fois, et trouve l'installation par défaut (C:\Boost ou /usr/include), il va continuer à trouver que l'une indépendamment de la valeur de BOOST_ROOT. Assurez-vous donc de supprimer complètement toute généré les fichiers de compilation. Puis définissez BOOST_ROOT désirée pour votre installation distincte, et il devrait fonctionner correctement.
Cela est également mentionné par jaor précédemment lié question: Comment puis-je obtenir cmake pour trouver mon alternative stimuler l'installation?
OriginalL'auteur phobon