我試圖用Qt GUI(Qt 5.6.0,因爲我不能依賴Cxx11功能)擴展現有的makefile C++項目。問題是我無法讓Qt正確鏈接。我想在Win7(x86-64)下創建一個X86應用程序(32位)。我已經安裝了從Qt下載頁面https://download.qt.io/archive/qt/5.6/5.6.0/獲得的qt-opensource-windows-x86-mingw492-5.6.0.exe。一切都在編譯。然而,聯產生以下錯誤:鏈接Qt5.6產生錯誤沒有找到需要的參考
C:/sofit/inuit_workspace/inuit_development/tools/makefiles/inuit/MakefileCatenaISS.mk:145: recipe for target 'build/model/model.exe' failed
C:/sofit/inuit_workspace/inuit_development/tools/inuit/inuit.cpp:175: undefined reference to `_imp___ZN12QApplicationC1ERiPPci'
C:/sofit/inuit_workspace/inuit_development/tools/inuit/inuit.cpp:176: undefined reference to `_imp___ZN7QWidgetC1EPS_6QFlagsIN2Qt10WindowTypeEE'
C:/sofit/inuit_workspace/inuit_development/tools/inuit/inuit.cpp:180: undefined reference to `_imp___ZN7QWidget4showEv'
C:/sofit/inuit_workspace/inuit_development/tools/inuit/inuit.cpp:181: undefined reference to `_imp___ZN12QApplication4execEv'
C:/sofit/inuit_workspace/inuit_development/tools/inuit/inuit.cpp:307: undefined reference to `_imp___ZN12QApplicationD1Ev'
C:/sofit/inuit_workspace/inuit_development/tools/inuit/inuit.cpp:307: undefined reference to `_imp___ZN12QApplicationD1Ev'
collect2.exe: error: ld returned 1 exit status
make: *** [build/model/model.exe] Error 1
我用下面的命令鏈接:
C:\Qt\Qt5.6.0\Tools\mingw492_32\bin\g++.exe -g
-LC:\Qt\Qt5.6.0\5.6\mingw49_32\lib -lQt5Widgets -lQt5Core -lQt5Gui -lQt5Cored -lQt5Guid -lQt5Widgetsd -lqtmain -lqtmaind -o build/model/model.exe ./build/model/objects/a.obj ./build/model/objects/b.obj
我已經添加了一堆庫和各種組合。單獨使用Widgets,Core和Gui也無法做到這一點。在相關問題回答中確定
潛在原因(見下文),旨在 - 不匹配架構的lib /編譯 - 缺少-lQt5Widgets
不過,我不認爲這也適用於這裏。請注意,我沒有使用CMake或QMake(因此沒有.pro文件或CMake文件) - 只是在Eclipse Mars內調用Gnu make。
源(如有興趣):
int main(int argc, char *argv[])
QApplication app(argc, argv);
QWidget *widget = new QWidget;
Ui_MainWindow ui;
widget->show();
return app.exec();
}
,編譯器指令(如有興趣):
C:\Qt\Qt5.6.0\Tools\mingw492_32\bin\g++.exe -IC:\Qt\Qt5.6.0\5.6\mingw49_32\include -IC:/my_project -Wall -g -c -DWIN32 -DUNICODE -DQT_LARGEFILE_SUPPORT -DQT_DLL -DQT_GUI_LIB -DQT_CORE_LIB -DQT_HAVE_MMX -DQT_HAVE_3DNOW -DQT_HAVE_SSE -DQT_HAVE_MMXEXT -DQT_HAVE_SSE2 -DQT_THREAD_SUPPORT C:/my_project/1.cpp -o C:/my_project/build/model/objects/1.obj
我和/試過沒有Qt的符號。
有誰知道可能是什麼問題?
相關:
- Compiling Qt5 hello world .cpp file under Windows using MinGW-w64 gives "undefined reference" error
- C++ Qt: undefined reference to `_imp___ZN12QApplicationC1ERiPPci'
- Compiling Qt5 hello world .cpp file under Windows using MinGW-w64 gives "undefined reference" error
- http://www.qtcentre.org/archive/index.php/t-34997.html
- Qt5 linking error
任何幫助是非常appre ciated。
您可能需要對「mkspecs」進行反向工程,以根據您的平臺找到正確的標誌 – Mozfox
至少,您不應該同時連接調試和發佈庫。根據你的需要選擇一個。 –