Cmake:分别为MSVC(Visual C ++)设置C和C ++代码的警告级别]]

问题描述 投票:0回答:1

我试图在基于cmake的版本中分别控制C和C ++代码的编译器警告:

对于gcc和clang,我可以使用TARGET_COMPILE_OPTIONS设置仅适用于C编译器的其他标志:

target_compile_options(MyLib PRIVATE 
                       $<$<AND:$<COMPILE_LANGUAGE:C>,$<NOT:$<CXX_COMPILER_ID:MSVC>>>: -Wall>)

现在,我想做同样的事情,但是对于MSVC:$<$<AND:$<COMPILE_LANGUAGE:C>,$<CXX_COMPILER_ID:MSVC>>: /W4>

这不起作用-似乎COMPILE_LANGUAGE:C被混合C / C ++项目中基于MSVC的生成所忽略。我正在使用Visual Studio 2019进行测试。

有人对此有解决方案吗?(除了只为C代码使用单独的目标之外)

我试图在基于cmake的版本中分别控制C和C ++代码的编译器警告:对于gcc和clang,我可以使用...来设置仅适用于C编译器的其他标志...

c++ c visual-c++ cmake compiler-warnings
1个回答
0
投票

...似乎COMPILE_LANGUAGE:C被混合C / C ++项目中基于MSVC的构建所忽略。

© www.soinside.com 2019 - 2024. All rights reserved.