如何解决在哪里可以找到Boost的CMake属性的列表?
这行代码曾经起作用:
get_property(_loc TARGET Boost::Boost PROPERTY LOCATION)
但是我更新了Boost,现在我收到以下消息:
get_property could not find TARGET Boost::Boost. Perhaps it has not yet been created.
所以我想目标Boost::Boost
不再存在,或者它没有定义LOCATION
属性。我想检查find_package(Boost REQUIRED CONFIG COMPONENTS unit_test_framework )
在调用时定义了哪些属性,但是找不到该信息。 Boost文档中的某处是否有CMake属性/目标名称的列表?
Cmake版本: 3.18.1
增强版本: 1.71.0
系统: Ubuntu 20.04 LTS
解决方法
CMake中Boost导入的目标是区分大小写的。请注意,在CMake 3.14 documentation中,仅标头依赖项的Boost目标是Boost::boost
。
此外,在3.15及更高版本的CMake(和更高版本的Boost)中,Boost::boost
导入的目标已被Boost::headers
取代。看来您应该改用这个Boost::headers
导入的目标。
您可以查询CMake文档中列出的Boost导入目标的 any 属性,例如Boost::unit_test_framework
。链接的CMake文档使用Boost::<C>
引用了这些单独的Boost组件,其中<C>
是组件之一。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。