在Qt Creator

时间:2016-02-22 09:13:42

标签: c++ mingw qt-creator compiler-warnings qmake

如何在Qt Creator中禁用-Wmissing-field-initializers警告?

我有一个Qt Creator / MinGW项目,当我初始化一个结构时:

void test() {
    struct foo {int a, b;};
    foo a = {};
}

我收到了这个警告:

test.cpp:12: warning: missing initializer for member 'test()::foo::b' [-Wmissing-field-initializers]
         foo a = {};
                  ^

我试过了:

QMAKE_CXXFLAGS += -Wnomissing-field-initializers

但是没有这样的选择。 QMAKE_CXXFLAGS -= -Wmissing-field-initializers也没有用。

实际上,命令行中未明确指定-Wmissing-field-initializers。这是编译器的命令行:

g++ -c -pipe -fno-keep-inline-dllexport -g -frtti -Wall -Wextra -fexceptions -mthreads -DUNICODE -DSRCDIR=\"C:/Workspace/NewProjects/TreTest/\" -DQT_TESTLIB_LIB -DQT_CORE_LIB -DQT_TESTCASE_BUILDDIR=\"C:/Workspace/NewProjects/build-TreTest-Desktop_Qt_5_4_2_MinGW_32bit-Debug\" -I"..\TreTest" -I"." -I"..\..\..\Qt\5.4\mingw491_32\include" -I"..\..\..\Qt\5.4\mingw491_32\include\QtTest" -I"..\..\..\Qt\5.4\mingw491_32\include\QtCore" -I"debug" -I"..\..\..\Qt\5.4\mingw491_32\mkspecs\win32-g++"  -o debug\fuzzyregex.o ..\TreTest\fuzzyregex.cpp

1 个答案:

答案 0 :(得分:0)

原来我忘了添加一个破折号。这很有效:

QMAKE_CXXFLAGS += -Wno-missing-field-initializers

我一直在尝试-Wnomissing-field-initializers(没有破折号),这就是我收到错误的原因,即没有这样的参数。