我在Qt项目中使用了GCC -Weffc++选项。为了禁止来自Qt header 的警告,我添加了QMAKE_CXXFLAGS += -isystem $(QTDIR)\include
但这并不能消除所有警告,我仍然从 QUuid 类收到恼人的警告,因为$(QTDIR)\include\QtCore\quuid.h文件包括..\..\src\corelib\plugin\quuid.h
我试图添加QMAKE_CXXFLAGS += -isystem $(QTDIR)\srcQMAKE_CXXFLAGS += -isystem $(QTDIR)\src\corelib\plugin但这没有帮助。有没有办法解决这个问题?

最佳答案

您需要分别禁止每个目录。我的项目中的示例:

QMAKE_CXXFLAGS += -isystem "$$[QT_INSTALL_HEADERS]/qt5" -isystem "$$[QT_INSTALL_HEADERS]/qt5/QtWidgets" \
                  -isystem "$$[QT_INSTALL_HEADERS]/QtXml" -isystem "/usr/include/qt5/QtGui" \
                  -isystem "$$[QT_INSTALL_HEADERS]/QtCore"

或者,针对已启用的确切Qt模块自动执行上述操作:
for (inc, QT) {
    QMAKE_CXXFLAGS += -isystem \"$$[QT_INSTALL_HEADERS]/Qt$$system("echo $$inc | sed 's/.*/\u&/'")\"
}

# Still need this separately:
QMAKE_CXXFLAGS += -isystem "$$[QT_INSTALL_HEADERS]/qt5"

关于qt - 如何禁止标题中包含的文件的警告,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/11663702/

10-17 00:19