我在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)\src
和QMAKE_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/