Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/cmake/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在哪里可以找到为Boost定义的CMake属性列表?_Boost_Cmake - Fatal编程技术网

在哪里可以找到为Boost定义的CMake属性列表?

在哪里可以找到为Boost定义的CMake属性列表?,boost,cmake,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. 因此,我猜测targetBoost::Boost不再存在,或者它没有定义LOCATION属性。我想检查调用时定义了哪些属性find\u包(Bo

这行代码用于工作:

get_property(_loc TARGET Boost::Boost PROPERTY LOCATION)
但我更新了Boost,现在我得到了以下信息:

get_property could not find TARGET Boost::Boost.  Perhaps it has not yet been created.
因此,我猜测target
Boost::Boost
不再存在,或者它没有定义
LOCATION
属性。我想检查调用时定义了哪些属性
find\u包(Boost-REQUIRED-CONFIG-COMPONENTS-unit\u-test\u-framework)
,但我找不到相关信息。Boost文档中是否有CMake属性/目标名称的列表

Cmake版本:3.18.1

增强版:1.71.0


系统:Ubuntu 20.04 LTS

CMake中的Boost导入目标区分大小写。注意,在CMake 3.14中,仅标题依赖项的提升目标是
Boost::Boost

此外,对于3.15及更高版本的CMake(以及更新版本的Boost),导入的目标已被替换为。看起来您应该使用这个
Boost::headers
导入的目标


您可以查询CMake文档中列出的任何Boost导入目标的属性,例如
Boost::unit_test_framework
。链接的CMake文档使用
Boost::
引用这些单独的Boost组件,其中
是组件之一。

您使用的是哪个版本的CMake?CMake的最新版本内置了对Boost的支持,请参见:Ty:)编辑文章以添加该版本。我已经检查了此文档,但找不到任何与
属性位置相关的内容:我不知道在何处/何时定义此属性,我不知道在何处定义了目标Boost::Boost,我不知道为什么在我更新Boost时它停止工作:)两个目标
Boost::Boost
Boost::headers
都给出了这个错误:
INTERFACE\u库目标可能只有白名单属性。不允许使用属性“LOCATION”。
CMake文档不会为Boost::unit\u test\u framework查询返回任何结果?@ArnaudBecheler,这是因为这些导入的目标表示头,而不是特定的库。因此,目标的“位置”更加模糊。
LOCATION
属性很可能只为实际包含库文件的导入目标定义。好的,我现在就知道了:)但是在我卸载/重新安装boost之前它为什么工作?我是不是因为只重新安装了header-only boost-libs而破坏了cmake代码?@ArnaudBecheler请查看我的更新回复以获得更好的解释。很难说为什么它以前能工作,因为不知道你以前使用的所有东西的版本,也看不到你正在使用的CMake代码的最小完整示例。是的,我真的很难跟踪代码/系统的功能状态并确保可重复性:'(我将此问题标记为已回答,因为您实际回答了大部分问题:)