gpt4 book ai didi

c++ - target_compile_options() 仅适用于 C++ 文件?

转载 作者:太空宇宙 更新时间:2023-11-04 04:13:32 41 4
gpt4 key购买 nike

是否可以仅对 C++ 文件使用 target_compile_options()?我想将它用于用作其他应用程序依赖项的目标,以便该库可以将其编译器标志传播到这些应用程序。但是,有一些特定的标志,例如 -std=c++14,如果它们与 C 或 ObjC 文件一起使用,会导致构建失败。

我读过我应该 CXX_FLAGS 而不是只将这些标志添加到 C++ 文件,但是这不会(自动)通过 cmake 的包系统传播。

最佳答案

解决方案

您可以使用 generator expressions 执行此操作:

target_compile_options(MyLib PUBLIC $<$<COMPILE_LANGUAGE:CXX>:-std=c++14>)

备选

但在这种特殊情况下,更独立于平台的方式是使用 target_compile_features() .我不确定是哪个 compiler feature你正在使用,所以下面只是一个例子:

target_compile_features(MyLib PUBLIC cxx_explicit_conversions)

关于c++ - target_compile_options() 仅适用于 C++ 文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54442045/

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