c'è una variabile denominata QMake QMAKE_CXXFLAGS_WARN_ON
che è incluso in CXXFLAGS
ogni volta CONFIG
contiene warn_on
.
così i file del mio progetto sono tutte dotate di un common.pri
che contiene:
CONFIG += warn_on
dirty_build: CONFIG += noopt
!dirty_build: WARNINGS += -Werror
# Turn on warnings, except for code that is Qt-generated
WARNINGS += -Wextra
WARNINGS += -Wunknown-pragmas -Wundef
WARNINGS += -Wold-style-cast
WARNINGS += -Wdisabled-optimization -Wstrict-overflow=4
WARNINGS += -Weffc++ -Wuseless-cast
WARNINGS += -Winit-self -Wpointer-arith
WARNINGS += -Wlogical-op
WARNINGS += -Wunsafe-loop-optimizations -Wno-error=unsafe-loop-optimizations
QMAKE_CXXFLAGS_WARN_ON += $(and $(filter-out moc_% qrc_%, [email protected]),$${WARNINGS})
La filter-out
esiste per disattivare gli avvisi per i file meta-oggetto e risorse Qt-generati.
devo anche
# Override the C and C++ targets to selectively replace -I with -isystem for include paths
QMAKE_RUN_CC = $(CC) -o $obj -c $(CFLAGS) $(subst -I/usr/include,-isystem /usr/include,$(INCPATH)) $src
QMAKE_RUN_CC_IMP = $(CC) -o [email protected] -c $(CFLAGS) $(subst -I/usr/include,-isystem /usr/include,$(INCPATH)) $<
QMAKE_RUN_CXX = $(CXX) -o $obj -c $(CXXFLAGS) $(subst -I/usr/include,-isystem /usr/include,$(INCPATH)) $src
QMAKE_RUN_CXX_IMP = $(CXX) -o [email protected] -c $(CXXFLAGS) $(subst -I/usr/include,-isystem /usr/include,$(INCPATH)) $<
che mi permette di attivare -Weffc++
ed altri senza incorrere in un sacco di messaggi dai file di intestazione installati.
fonte
2017-07-21 15:14:27
Grazie mille! ;) – ereOn
link dead, potresti aggiornarlo? –