57 votes

CMake trouve Boost mais importées, les objectifs ne sont pas disponibles pour Stimuler la version

J'utilise CMake pour trouver coup de pouce. Boost est trouvé, mais CMake erreurs avec

Importé les objectifs ne sont pas disponibles pour Stimuler la version

Voir l'intégralité de l'erreur (à partir de macOS) ci-dessous. Ce que je fais mal?

CMake Warning at /Applications/CMake.app/Contents/share/cmake-3.6/Modules/FindBoost.cmake:743 (message):
  Imported targets not available for Boost version 106300
Call Stack (most recent call first):
  /Applications/CMake.app/Contents/share/cmake-3.6/Modules/FindBoost.cmake:842 (_Boost_COMPONENT_DEPENDENCIES)
/Applications/CMake.app/Contents/share/cmake-3.6/Modules/FindBoost.cmake:1395 (_Boost_MISSING_DEPENDENCIES)
CMakeLists.txt:6 (find_package)

Boost version: 1.63.0
Found the following Boost libraries:
  thread
CMake Warning at /Applications/CMake.app/Contents/share/cmake-3.6/Modules/FindBoost.cmake:743 (message):
  Imported targets not available for Boost version 106300
Call Stack (most recent call first):
  /Applications/CMake.app/Contents/share/cmake-3.6/Modules/FindBoost.cmake:842 (_Boost_COMPONENT_DEPENDENCIES)
  /Applications/CMake.app/Contents/share/cmake-3.6/Modules/FindBoost.cmake:1395 (_Boost_MISSING_DEPENDENCIES)
  CMakeLists.txt:7 (find_package)

130voto

usr1234567 Points 9086

Votre CMake version est trop ancienne. Mise à jour de CMake et il va fonctionner.

CMake ne peut pas détecter les dépendances entre les différentes bibliothèques Boost. Ils ont explicitement mis en œuvre en FindBoost.
Pour chaque Stimuler la libération de cette information est complétée par la CMake responsables et il ne reçoit qu'une partie de la prochaine version de CMake. Ainsi, vous devez vous assurer que votre version de CMake a été libéré après le coup de pouce de la version que vous essayez de trouver.

Boost 1.63 nécessite CMake de 3,7 ou plus récent.
Boost 1.64 nécessite CMake 3.8 ou plus récent.
Boost 1,65 et 1.65.1 besoin de CMake 3.9.3 ou plus récent.
Boost 1.66 nécessite CMake 3.11 ou plus récent.
Boost 1.67 nécessite CMake 3.12 ou plus récent.
Boost 1.68, 1.69 besoin de CMake 3.13 ou plus récent.

1voto

user2267882 Points 39

Je voulais juste poster le contourner, comme il est beaucoup plus facile que la mise à niveau de CMake sur les systèmes que je suis en train de travailler sur l'endroit où je n'ai pas de root ou sudo accès. Ensemble BOOST_INCLUDEDIR et BOOST_LIBRARYDIR directement lors de l'invocation de CMake.

cmake  -DBOOST_INCLUDEDIR=... -DBOOST_LIBRARYDIR=... ...

Cela peut ne pas fonctionner si Boost changé les dépendances entre la liste de codées en dur dans le module fourni avec CMake et le coup de pouce de la version que vous utilisez. Ça vous prendra 30 secondes pour essayer de vs 30 min pour installer cmake à partir de la source.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X