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



要使用 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)

然后,如果要禁止显示视觉的特定警告C++遵循此参考:https://msdn.microsoft.com/en-us/library/jj715718.aspx

按 Ctrl+F>键入"禁止显示视觉C++的特定警告"。 您可以找到如何禁止显示特定警告。

最新更新