这行代码曾经起作用:
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
答案 0 :(得分:2)
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>
是组件之一。