CMake encuentra Boost pero los objetivos importados no están disponibles para la versión Boost
(2)
Solo quería publicar el siguiente trabajo, ya que es mucho más fácil que actualizar CMake en los sistemas en los que estoy trabajando donde no tengo acceso root / sudo.
Establezca
BOOST_INCLUDEDIR
y
BOOST_LIBRARYDIR
directamente al invocar CMake.
cmake -DBOOST_INCLUDEDIR=... -DBOOST_LIBRARYDIR=... ...
Esto puede no funcionar si Boost cambia las dependencias entre la lista codificada en el módulo que se incluye con CMake y la versión de refuerzo que está utilizando. Tardará 30 segundos en probar vs 30 minutos para instalar cmake desde la fuente.
Yo uso CMake para encontrar Boost. Boost se encuentra, pero CMake errores con
Los objetivos importados no están disponibles para la versión Boost
Vea el error completo (de macOS) a continuación. ¿Qué estoy haciendo 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)
Su versión de CMake es demasiado antigua. Actualice CMake y funcionará.
CMake no puede detectar las dependencias entre las diferentes bibliotecas de Boost.
Se han implementado explícitamente en
FindBoost
.
Para cada versión de Boost, los mantenedores de CMake agregan esta información y ésta forma parte de la próxima versión de CMake.
Por lo tanto, debe asegurarse de que su versión CMake se lanzó después de la versión Boost que intenta encontrar.
Boost 1.63 requiere CMake 3.7 o posterior.
Boost 1.64 requiere CMake 3.8 o posterior.
Boost 1.65 y 1.65.1 requieren CMake 3.9.3 o posterior.
Boost 1.66 requiere CMake 3.11 o posterior.
Boost 1.67 requiere CMake 3.12 o posterior.
Boost 1.68, 1.69 requieren CMake 3.13 o posterior.
Boost 1.70 requiere CMake 3.14 o posterior.