簡體   English   中英

如何使用 QT qmake + g++ 構建的.pro 文件添加 c++ 構建標志?

[英]How to add c++ build flag using .pro file for QT qmake + g++ build?

例如,我想添加-Wignored-qualifiers標志:添加到我的項目的.pro 文件以下行:

QMAKE_CXXFLAGS += -Wignored-qualifiers

但是在構建項目時,在 qmake 工具提供的 g++ 調用中,此標志不存在,並且該標志將禁用的編譯器警告也存在。 我究竟做錯了什么?

我提供了完整收到的 output:

18:38:12: Running steps for project untitled...
18:38:12: Configuration unchanged, skipping qmake step.
18:38:12: Starting: "C:\Qt\Tools\mingw810_32\bin\mingw32-make.exe" -j4
C:/Qt/Tools/mingw810_32/bin/mingw32-make -f Makefile.Release
mingw32-make[1]: Entering directory 'C:/qt_projects/build-untitled-Static-Release'
g++ -c -fno-keep-inline-dllexport -Wignored-qualifiers -O2 -Wall -W -Wextra -fexceptions -mthreads -DUNICODE -D_UNICODE -DWIN32 -DQT_STATIC_BUILD -DQT_DEPRECATED_WARNINGS -DQT_NO_DEBUG -DQT_WIDGETS_LIB -DQT_GUI_LIB -DQT_NETWORK_LIB -DQT_CORE_LIB -DQT_NEEDS_QMAIN -I..\untitled -I. -I..\..\Qt\Static599\5.9.9_Static\include -I..\..\Qt\Static599\5.9.9_Static\include\QtWidgets -I..\..\Qt\Static599\5.9.9_Static\include\QtGui -I..\..\Qt\Static599\5.9.9_Static\include\QtNetwork -I..\..\Qt\Static599\5.9.9_Static\include\QtCore -Irelease -I. -I..\..\Qt\Static599\5.9.9_Static\mkspecs\win32-g++  -o release\battlefield.o ..\untitled\battlefield.cpp
g++ -c -fno-keep-inline-dllexport -Wignored-qualifiers -O2 -Wall -W -Wextra -fexceptions -mthreads -DUNICODE -D_UNICODE -DWIN32 -DQT_STATIC_BUILD -DQT_DEPRECATED_WARNINGS -DQT_NO_DEBUG -DQT_WIDGETS_LIB -DQT_GUI_LIB -DQT_NETWORK_LIB -DQT_CORE_LIB -DQT_NEEDS_QMAIN -I..\untitled -I. -I..\..\Qt\Static599\5.9.9_Static\include -I..\..\Qt\Static599\5.9.9_Static\include\QtWidgets -I..\..\Qt\Static599\5.9.9_Static\include\QtGui -I..\..\Qt\Static599\5.9.9_Static\include\QtNetwork -I..\..\Qt\Static599\5.9.9_Static\include\QtCore -Irelease -I. -I..\..\Qt\Static599\5.9.9_Static\mkspecs\win32-g++  -o release\image.o ..\untitled\image.cpp
g++ -c -fno-keep-inline-dllexport -Wignored-qualifiers -O2 -Wall -W -Wextra -fexceptions -mthreads -DUNICODE -D_UNICODE -DWIN32 -DQT_STATIC_BUILD -DQT_DEPRECATED_WARNINGS -DQT_NO_DEBUG -DQT_WIDGETS_LIB -DQT_GUI_LIB -DQT_NETWORK_LIB -DQT_CORE_LIB -DQT_NEEDS_QMAIN -I..\untitled -I. -I..\..\Qt\Static599\5.9.9_Static\include -I..\..\Qt\Static599\5.9.9_Static\include\QtWidgets -I..\..\Qt\Static599\5.9.9_Static\include\QtGui -I..\..\Qt\Static599\5.9.9_Static\include\QtNetwork -I..\..\Qt\Static599\5.9.9_Static\include\QtCore -Irelease -I. -I..\..\Qt\Static599\5.9.9_Static\mkspecs\win32-g++  -o release\player.o ..\untitled\player.cpp
g++ -c -fno-keep-inline-dllexport -Wignored-qualifiers -O2 -Wall -W -Wextra -fexceptions -mthreads -DUNICODE -D_UNICODE -DWIN32 -DQT_STATIC_BUILD -DQT_DEPRECATED_WARNINGS -DQT_NO_DEBUG -DQT_WIDGETS_LIB -DQT_GUI_LIB -DQT_NETWORK_LIB -DQT_CORE_LIB -DQT_NEEDS_QMAIN -I..\untitled -I. -I..\..\Qt\Static599\5.9.9_Static\include -I..\..\Qt\Static599\5.9.9_Static\include\QtWidgets -I..\..\Qt\Static599\5.9.9_Static\include\QtGui -I..\..\Qt\Static599\5.9.9_Static\include\QtNetwork -I..\..\Qt\Static599\5.9.9_Static\include\QtCore -Irelease -I. -I..\..\Qt\Static599\5.9.9_Static\mkspecs\win32-g++  -o release\window.o ..\untitled\window.cpp
In file included from ..\untitled\player.cpp:1:
..\untitled\player.h:91:5: warning: type qualifiers ignored on function return type [-Wignored-qualifiers]
     const uint_fast16_t shipNum( const uint_fast16_t size ) const;
     ^~~~~
..\untitled\player.h:97:5: warning: type qualifiers ignored on function return type [-Wignored-qualifiers]
     const uint_fast8_t isShip( const uint_fast16_t size, const uint_fast16_t x, const uint_fast16_t y ) const;
     ^~~~~
..\untitled\player.h:134:5: warning: type qualifiers ignored on function return type [-Wignored-qualifiers]
     const int_fast8_t IsWin();
     ^~~~~
..\untitled\player.h:161:5: warning: type qualifiers ignored on function return type [-Wignored-qualifiers]
     const uint_fast8_t checkMyField() const;
     ^~~~~
..\untitled\player.cpp:106:1: warning: type qualifiers ignored on function return type [-Wignored-qualifiers]
 const uint_fast8_t Player::checkMyField() const
 ^~~~~
..\untitled\player.cpp:121:1: warning: type qualifiers ignored on function return type [-Wignored-qualifiers]
 const uint_fast16_t Player::shipNum
 ^~~~~
..\untitled\player.cpp:147:1: warning: type qualifiers ignored on function return type [-Wignored-qualifiers]
 const uint_fast8_t Player::isShip( const uint_fast16_t size, const uint_fast16_t x, const uint_fast16_t y ) const{
 ^~~~~
In file included from ..\untitled\battlefield.cpp:2:
..\untitled\player.h:91:5: warning: type qualifiers ignored on function return type [-Wignored-qualifiers]
     const uint_fast16_t shipNum( const uint_fast16_t size ) const;
     ^~~~~
..\untitled\player.h:97:5: warning: type qualifiers ignored on function return type [-Wignored-qualifiers]
     const uint_fast8_t isShip( const uint_fast16_t size, const uint_fast16_t x, const uint_fast16_t y ) const;
     ^~~~~
..\untitled\player.h:134:5: warning: type qualifiers ignored on function return type [-Wignored-qualifiers]
     const int_fast8_t IsWin();
     ^~~~~
..\untitled\player.h:161:5: warning: type qualifiers ignored on function return type [-Wignored-qualifiers]
     const uint_fast8_t checkMyField() const;
     ^~~~~
In file included from ..\untitled\image.cpp:2:
..\untitled\player.h:91:5: warning: type qualifiers ignored on function return type [-Wignored-qualifiers]
     const uint_fast16_t shipNum( const uint_fast16_t size ) const;
     ^~~~~
..\untitled\player.h:97:5: warning: type qualifiers ignored on function return type [-Wignored-qualifiers]
     const uint_fast8_t isShip( const uint_fast16_t size, const uint_fast16_t x, const uint_fast16_t y ) const;
     ^~~~~
..\untitled\player.h:134:5: warning: type qualifiers ignored on function return type [-Wignored-qualifiers]
     const int_fast8_t IsWin();
     ^~~~~
..\untitled\player.h:161:5: warning: type qualifiers ignored on function return type [-Wignored-qualifiers]
     const uint_fast8_t checkMyField() const;
     ^~~~~
..\untitled\player.cpp: In member function 'void Player::ProcessClick(const uint_fast16_t&, const uint_fast16_t&)':
..\untitled\player.cpp:229:5: warning: this 'if' clause does not guard... [-Wmisleading-indentation]
     if(
     ^~
..\untitled\player.cpp:240:9: note: ...this statement, but the latter is misleadingly indented as if it were guarded by the 'if'
         if (
         ^~
..\untitled\player.cpp: At global scope:
..\untitled\player.cpp:346:1: warning: type qualifiers ignored on function return type [-Wignored-qualifiers]
 const int_fast8_t Player::IsWin(){
 ^~~~~
In file included from ..\untitled\window.cpp:4:
..\untitled\player.h:91:5: warning: type qualifiers ignored on function return type [-Wignored-qualifiers]
     const uint_fast16_t shipNum( const uint_fast16_t size ) const;
     ^~~~~
..\untitled\player.h:97:5: warning: type qualifiers ignored on function return type [-Wignored-qualifiers]
     const uint_fast8_t isShip( const uint_fast16_t size, const uint_fast16_t x, const uint_fast16_t y ) const;
     ^~~~~
..\untitled\player.h:134:5: warning: type qualifiers ignored on function return type [-Wignored-qualifiers]
     const int_fast8_t IsWin();
     ^~~~~
..\untitled\player.h:161:5: warning: type qualifiers ignored on function return type [-Wignored-qualifiers]
     const uint_fast8_t checkMyField() const;
     ^~~~~
..\untitled\window.cpp: In member function 'void Window::on_pushButton_5_clicked()':
..\untitled\window.cpp:81:32: warning: suggest braces around empty body in an 'else' statement [-Wempty-body]
     else  /*to do message box*/;
                                ^
g++ -static -static-libgcc -Wl,-s -Wl,-subsystem,windows -mthreads -o release\untitled.exe release/battlefield.o release/image.o release/main.o release/player.o release/server.o release/window.o release/untitled_plugin_import.o release/moc_server.o release/moc_window.o  -lmingw32 -LC:\Qt\Static599\5.9.9_Static\lib C:\Qt\Static599\5.9.9_Static\lib\libqtmain.a -LC:\Qt\Static599\5.9.9_Static\plugins\platforms C:\Qt\Static599\5.9.9_Static\plugins\platforms\libqwindows.a -lwinspool -lshlwapi C:\Qt\Static599\5.9.9_Static\lib\libQt5EventDispatcherSupport.a C:\Qt\Static599\5.9.9_Static\lib\libQt5FontDatabaseSupport.a C:\Qt\Static599\5.9.9_Static\lib\libqtfreetype.a C:\Qt\Static599\5.9.9_Static\lib\libQt5ThemeSupport.a C:\Qt\Static599\5.9.9_Static\lib\libQt5AccessibilitySupport.a -LC:\Qt\Static599\5.9.9_Static\plugins\imageformats C:\Qt\Static599\5.9.9_Static\plugins\imageformats\libqgif.a C:\Qt\Static599\5.9.9_Static\plugins\imageformats\libqicns.a C:\Qt\Static599\5.9.9_Static\plugins\imageformats\libqico.a C:\Qt\Static599\5.9.9_Static\plugins\imageformats\libqjpeg.a C:\Qt\Static599\5.9.9_Static\plugins\imageformats\libqtga.a C:\Qt\Static599\5.9.9_Static\plugins\imageformats\libqtiff.a C:\Qt\Static599\5.9.9_Static\plugins\imageformats\libqwbmp.a C:\Qt\Static599\5.9.9_Static\plugins\imageformats\libqwebp.a -LC:\Qt\Static599\5.9.9_Static\plugins\bearer C:\Qt\Static599\5.9.9_Static\plugins\bearer\libqgenericbearer.a C:\Qt\Static599\5.9.9_Static\lib\libQt5Widgets.a -luxtheme -ldwmapi C:\Qt\Static599\5.9.9_Static\lib\libQt5Gui.a -lcomdlg32 -loleaut32 -limm32 -lglu32 -lopengl32 -lgdi32 C:\Qt\Static599\5.9.9_Static\lib\libqtlibpng.a C:\Qt\Static599\5.9.9_Static\lib\libqtharfbuzz.a C:\Qt\Static599\5.9.9_Static\lib\libQt5Network.a -ldnsapi -liphlpapi C:\Qt\Static599\5.9.9_Static\lib\libQt5Core.a -lmpr -lversion -lws2_32 -lkernel32 -luser32 -lshell32 -luuid -lole32 -ladvapi32 -lwinmm C:\Qt\Static599\5.9.9_Static\lib\libqtpcre2.a 
mingw32-make[1]: Leaving directory 'C:/qt_projects/build-untitled-Static-Release'
18:38:22: The process "C:\Qt\Tools\mingw810_32\bin\mingw32-make.exe" exited normally.
18:38:22: Elapsed time: 00:10.

您的標志已成功添加在g++命令中查找-Wignored-qualifiers

g++ -c -fno-keep-inline-dllexport -Wignored-qualifiers -O2 -Wall -W -Wextra -fexceptions -mthreads -DUNICODE -D_UNICODE -DWIN32 -DQT_STATIC_BUILD -DQT_DEPRECATED_WARNINGS -DQT_NO_DEBUG -DQT_WIDGETS_LIB -DQT_GUI_LIB -DQT_NETWORK_LIB -DQT_CORE_LIB -DQT_NEEDS_QMAIN -I..\untitled -I. -I..\..\Qt\Static599\5.9.9_Static\include -I..\..\Qt\Static599\5.9.9_Static\include\QtWidgets -I..\..\Qt\Static599\5.9.9_Static\include\QtGui -I..\..\Qt\Static599\5.9.9_Static\include\QtNetwork -I..\..\Qt\Static599\5.9.9_Static\include\QtCore -Irelease -I. -I..\..\Qt\Static599\5.9.9_Static\mkspecs\win32-g++  -o release\battlefield.o ..\untitled\battlefield.cpp

但是,您應該詳細閱讀 gcc 編譯器的警告選項

您通過將-Wignored-qualifiers添加到QMAKE_CXXFLAGS來嘗試執行的操作實際上是在告訴編譯器啟用警告而不是禁用它。 您還可以通過添加-Wextra標志來添加此警告。

如果要禁止顯示此警告,則應添加-Wno-ignored-qualifiers

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM