CMake:如何将每个资源编译器警告视为错误并抑制特定警告?

CMake: How to treat every resource compiler warning as error and to suppress specific warnings?

为了在使用 CMake 生成 MSVC 项目时抑制特定源文件中的特定警告,我正在使用类似的东西:

set_source_files_properties(
    "ToursInfoMng.cpp"
  PROPERTIES
    COMPILE_FLAGS "/wd4503")

这不适用于资源编译器警告。例如警告:

warning RC4206: title string too long; truncated at 256

我尝试使用:

set_source_files_properties(
    "ResEs.rc"
  PROPERTIES
    COMPILE_FLAGS "/wd4206")

但这不会抑制警告。

我将 \WX 用于编译器和链接器警告,分别将其设置为 CMAKE_CXX_FLAGSCMAKE_STATIC|SHARED|EXE_LINKER_FLAGS,但我不知道如何针对资源编译器警告执行此操作.

我认为这两者都不可能。 Windows 资源编译器没有记录的一般警告控制选项,只需键入 rc /? 进行检查。

您可以使用 CMAKE_RC_FLAGS 更改资源编译器的标志。

COMPILE_FLAGSCOMPILE_OPTIONS 上还有一个过滤器,可防止它们被用于将任何未定义或包含的标志传递给资源编译器。原则上,如果需要,您可以更改过滤器 (CMAKE_RC_FLAG_REGEX) 以便能够将这些属性用于更多用途,但在这种情况下这对您没有帮助。

#pragma warning(push)
#pragma warning(disable : 4101)
// Function Here : Declare
#pragma warning(pop)

那么如果你想抑制 Visual C++ 的特定警告 按照此参考:https://msdn.microsoft.com/en-us/library/jj715718.aspx

按 Ctrl+F > 输入 "To suppress specific warnings for Visual C++"。 您可以找到如何抑制特定警告。