为了账号安全,请及时绑定邮箱和手机立即绑定

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

/ 猿问

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)


查看完整描述

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或更高版本。


查看完整回答
反对 2019-08-08
?
UYOU

我只想发布以下工作,因为它比我正在工作的系统上升级CMake要容易得多,因为我没有root / sudo访问权限。设置BOOST_INCLUDEDIRBOOST_LIBRARYDIR调用时的CMake直接。

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

如果Boost更改了CMake随附的模块中硬编码的列表与您正在使用的boost版本之间的依赖关系,则此操作可能无效。从源头开始安装cmake需要30秒才能尝试30分钟。


查看完整回答
反对 2019-08-08
  • 2 回答
  • 0 关注
  • 1704 浏览

添加回答

回复

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信