boost cmake

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.