CMake找到Boost但导入的目标不适用于Boost版本

CMake找到Boost但导入的目标不适用于Boost版本

我用CMake找到Boost。找到了Boost,但CMake出错了

导入的目标不适用于Boost版本

请参阅下面的完整错误(来自macOS)。我究竟做错了什么?

CMake Warning at /Applications/CMake.app/Contents/share/cmake-3.6/Modules/FindBoost.cmake:743 (message):
  Imported targets not available for Boost version 106300Call 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.0Found the following Boost libraries:
  threadCMake Warning at /Applications/CMake.app/Contents/share/cmake-3.6/Modules/FindBoost.cmake:743 (message):
  Imported targets not available for Boost version 106300Call 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)


紫衣仙女
浏览 5105回答 2
2回答

慕莱坞森

你的CMake版本太旧了。更新CMake,它会工作。CMake无法检测不同Boost库之间的依赖关系。他们明确地实施了FindBoost。对于每个Boost版本,这些信息都由CMake维护者添加,它将成为下一个CMake版本的一部分。因此,您必须确保您的CMake版本在您尝试查找的Boost版本之后发布。Boost 1.63要求CMake 3.7或更高版本。Boost 1.64需要CMake 3.8或更高版本。升压1.65和1.65.1需要CMake 3.9.3或更高版本。Boost 1.66需要CMake 3.11或更高版本。Boost 1.67需要CMake 3.12或更高版本。升压1.68,1.69要求CMake 3.13或更高版本。Boost 1.70需要CMake 3.14或更高版本。

UYOU

我只想发布以下工作,因为它比我正在工作的系统上升级CMake要容易得多,因为我没有root / sudo访问权限。设置BOOST_INCLUDEDIR和BOOST_LIBRARYDIR调用时的CMake直接。cmake  -DBOOST_INCLUDEDIR=... -DBOOST_LIBRARYDIR=... ...如果Boost更改了CMake随附的模块中硬编码的列表与您正在使用的boost版本之间的依赖关系,则此操作可能无效。从源头开始安装cmake需要30秒才能尝试30分钟。
打开App,查看更多内容
随时随地看视频慕课网APP