gpt4 book ai didi

c++ - 将 cmake 的 target_compile_features 与 biicode 结合使用

转载 作者:行者123 更新时间:2023-11-30 05:43:55 24 4
gpt4 key购买 nike

我正在尝试使用 target_compile_feature在我的 biicode block 中。据我所知,这是目前向 cmake 询问特定 C++ 标准版本的最佳方式,因为它将知道要添加到编译中的(如果有的话)标志,并且如果正在使用的编译器不这样做,则会失败并显示错误支持我们要求的功能。

我将这一行添加到我非常简单的 CMakeLists.txt(与 biicode 博客中的 boost 示例相比没有任何变化):

target_compile_features(${BII_BLOCK_TARGET} PRIVATE cxx_auto_type)

当运行 bii build 时,我遇到了这个错误:

CMake Error at     bii_test/alchemist/blocks/sennin/deckbox_loader/CMakeLists.txt:13 (target_compile_features):
target_compile_features may only be set INTERFACE properties on INTERFACE
targets

在 PUBLIC 或 PRIVATE 范围内设置 cxx_auto_type 具有完全相同的结果。

我想避免使用 CXX_STANDARD和 CXX_STANDARD_REQUIRED 因为第一个是软请求(如果不支持请求的标准,cmake 仍将允许我们尝试构建代码),第二个强制要求有某种方式请求对整个请求的标准的完全支持(并且在对于 Visual Studio,失败,因为没有这样的标志。

最佳答案

我对 bii 一无所知,但大概 BII_BLOCK_TARGET 是它提供的东西?你应该将它与 target_link_libraries 或其他东西一起使用吗?

无论如何,请尝试使用 INTERFACE 关键字。

target_compile_features(${BII_BLOCK_TARGET} INTERFACE cxx_auto_type)

http://www.cmake.org/cmake/help/v3.2/manual/cmake-compile-features.7.html

http://www.cmake.org/cmake/help/v3.2/manual/cmake-buildsystem.7.html#transitive-usage-requirements

关于c++ - 将 cmake 的 target_compile_features 与 biicode 结合使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30042047/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com