c++ - msys2 静态 QT undefined reference 问题

标签 c++ qt mingw

最近重温了一些QT代码,然后写了一些简单的东西。适用于动态 QT,但是当使用 qt5-static 中的 qt make 时,我得到

debug/editor.o: In function qMain(int, char**)': C:\msys64\home\tim\Projects\editor/editor.cpp:6: undefined reference to__imp__ZN12QApplicationC1ERiPPci' C:\msys64\home\tim\Projects\editor/editor.cpp:7: undefined reference to __imp__ZN9QTextEditC1EP7QWidget' C:\msys64\home\tim\Projects\editor/editor.cpp:8: undefined reference to__imp__ZN7QWidget4showEv' C:\msys64\home\tim\Projects\editor/editor.cpp:9: undefined reference to __imp__ZN12QApplication4execEv' C:\msys64\home\tim\Projects\editor/editor.cpp:7: undefined reference to__imp__ZN9QTextEditD1Ev' C:\msys64\home\tim\Projects\editor/editor.cpp:6: undefined reference to __imp__ZN12QApplicationD1Ev' C:\msys64\home\tim\Projects\editor/editor.cpp:7: undefined reference to__imp__ZN9QTextEditD1Ev' C:\msys64\home\tim\Projects\editor/editor.cpp:6: undefined reference to `__imp__ZN12QApplicationD1Ev'

对于

#include <QApplication>
#include <QTextEdit>

int main(int argv, char **args)
{
        QApplication app(argv, args);
        QTextEdit textEdit;
        textEdit.show();
        return app.exec();
}

链接器似乎在引入所有正确的东西

g++ -static -Wl,-subsystem,windows -mthreads -o debug/editor.exe debug/editor.o debug/editor_plugin_import.o -lmingw32 -LC:/msys64/mingw64/qt5-static/lib C:/msys64/mingw64/qt5-static/lib/libqtmaind.a -LC:/msys64/mingw64/qt5-static/share/qt5/plugins/styles C:/msys64/mingw64/qt5-static/share/qt5/plugins/styles/libqwindowsvistastyled.a -LC:/msys64/mingw64/qt5-static/share/qt5/plugins/platforms C:/msys64/mingw64/qt5-static/share/qt5/plugins/platforms/libqwindowsd.a -lwinspool -lshlwapi -lrpcrt4 C:/msys64/mingw64/qt5-static/lib/libQt5EventDispatcherSupportd.a C:/msys64/mingw64/qt5-static/lib/libQt5FontDatabaseSupportd.a C:/msys64/mingw64/qt5-static/lib/libqtfreetyped.a C:/msys64/mingw64/qt5-static/lib/libQt5ThemeSupportd.a C:/msys64/mingw64/qt5-static/lib/libQt5AccessibilitySupportd.a C:/msys64/mingw64/qt5-static/lib/libQt5VulkanSupportd.a -LC:/msys64/mingw64/qt5-static/share/qt5/plugins/imageformats C:/msys64/mingw64/qt5-static/share/qt5/plugins/imageformats/libqgifd.a C:/msys64/mingw64/qt5-static/share/qt5/plugins/imageformats/libqicnsd.a C:/msys64/mingw64/qt5-static/share/qt5/plugins/imageformats/libqicod.a C:/msys64/mingw64/qt5-static/share/qt5/plugins/imageformats/libqjp2d.a -ljasper C:/msys64/mingw64/qt5-static/share/qt5/plugins/imageformats/libqjpegd.a C:/msys64/mingw64/qt5-static/share/qt5/plugins/imageformats/libqtgad.a C:/msys64/mingw64/qt5-static/share/qt5/plugins/imageformats/libqtiffd.a C:/msys64/mingw64/qt5-static/share/qt5/plugins/imageformats/libqwbmpd.a C:/msys64/mingw64/qt5-static/share/qt5/plugins/imageformats/libqwebpd.a C:/msys64/mingw64/qt5-static/lib/libQt5Widgetsd.a -luxtheme -ldwmapi C:/msys64/mingw64/qt5-static/lib/libQt5Guid.a -lcomdlg32 -loleaut32 -limm32 -lglu32 -lopengl32 -lgdi32 C:/msys64/mingw64/qt5-static/lib/libqtlibpngd.a C:/msys64/mingw64/qt5-static/lib/libqtharfbuzzd.a C:/msys64/mingw64/qt5-static/lib/libQt5Cored.a -lmpr -lnetapi32 -luserenv -lversion -lws2_32 -lkernel32 -luser32 -lshell32 -luuid -lole32 -ladvapi32 -lwinmm C:/msys64/mingw64/qt5-static/lib/libqtpcre2d.a

一切都应该安装

$ pacman -Ss qt5-static mingw32/mingw-w64-i686-qt5-static 5.10.0-2 (mingw-w64-i686-qt mingw-w64-i686-qt5) [installed] A cross-platform application and UI framework (mingw-w64-static) mingw64/mingw-w64-x86_64-qt5-static 5.10.0-2 (mingw-w64-x86_64-qt mingw-w64-x86_64-qt5) [installed] A cross-platform application and UI framework (mingw-w64-static)

我用 qmake -project 制作了 pro 并添加了 QT += widgets。 'qmake'(动态)有效,但 '\mingw64\qt5-static\bin\qmake' 导致 undefined reference 。非常感谢任何提示。

最佳答案

我不得不重新安装 mingw64/mingw-w64-x86_64-qt5-static 然后它工作了。

关于c++ - msys2 静态 QT undefined reference 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48999327/

相关文章:

c++ - 为什么 QString 和 vector<unique_ptr<int>> 在这里显得不兼容?

c++ - QTreeWidget 选择第一行

c++ - 如何正确使用QProcess写?

c++ - 在带有 mingw 的 Windows 上使用 openmp。找不到 -lpthread

c++ - c++中整数的幂

C++ - 如何使使用 MinGW 独立编译的程序?

c++ - 在 Linux 上嗅探以太网接口(interface)

c++ - 重新排列二维数组

c++ - cmake 命令找不到 boost 库

c++ - 是否可以将 TeeChart 的 .NET 版本与 C++ 结合使用?