2012-07-26 101 views
6

我在我的Qt项目中使用GCC -Weffc++选项。为了抑制来自Qt标题的警告,我添加了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
,但它并没有帮助。有没有办法来解决这个问题?如何抑制从标题中包含的文件的警告

+0

我没有得到'Qt'文件的任何警告,以'G ++,假设你的意思是'g ++'? – cmannett85 2012-07-26 06:44:37

+0

是的,我的意思是'g ++'。也许它取决于Qt版本或平台? – WalterSullivan 2012-07-26 07:04:47

+0

发布你的'Qt'版本和平台。此外,您是否自己构建'Qt',或者是否预先制作好了(Windows下载,还是来自您的包管理器)? – cmannett85 2012-07-26 07:41:04

回答

8

你需要分别压制每个目录。例如,从我的项目:

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" 
+0

从非QT项目? – lalebarde 2016-12-29 18:17:22

+0

QMAKE_CXXFLAGS它与makefile中的CXXFLAGS等效。 – dismine 2016-12-29 18:48:38