首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用cmake的target_compile_features和biicode

使用cmake的target_compile_features和biicode
EN

Stack Overflow用户
提问于 2015-05-04 23:59:33
回答 1查看 892关注 0票数 1

我试图在我的biicode块中使用功能。据我所知,这是目前向cmake询问特定c++标准版本的最佳方法,因为它将知道要添加到编译中的标志(如果有的话),如果正在使用的编译器不支持我们请求的特性,则会失败。

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

代码语言:javascript
复制
target_compile_features(${BII_BLOCK_TARGET} PRIVATE cxx_auto_type)

在运行bii构建时,会遇到以下错误:

代码语言:javascript
复制
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

将cxx_auto_type设置为公共或私有范围具有完全相同的结果。

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

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-05-05 07:26:32

我对bii一无所知,但BII_BLOCK_TARGET可能是它提供的东西吗?你应该把它和target_link_libraries什么的一起用吗?

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

代码语言:javascript
复制
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

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30042047

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档