You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Windows下Qt 6.6静态编译项目链接错误求助

Qt 6.6静态编译构建Scenegraph示例时链接oleaut32库失败问题

我在Windows上编译了Qt 6.6静态版本,尝试构建静态项目时,编译“Scenegraph”示例程序失败,出现以下链接错误:

C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/13.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: C:/Qt/6.6.0-static/plugins/networkinformation/libqnetworklistmanager.a(qnetworklistmanagerevents.cpp.obj):qnetworklistmanagerevents.cpp:(.text$_ZN25QNetworkListManagerEvents24checkBehindCaptivePortalEv+0x82): undefined reference to `__imp_VariantInit'
C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/13.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: C:/Qt/6.6.0-static/plugins/networkinformation/libqnetworklistmanager.a(qnetworklistmanagerevents.cpp.obj):qnetworklistmanagerevents.cpp:(.text$_ZN25QNetworkListManagerEvents24checkBehindCaptivePortalEv+0x98): undefined reference to `__imp_VariantClear'
C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/13.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: C:/Qt/6.6.0-static/plugins/networkinformation/libqnetworklistmanager.a(qnetworklistmanagerevents.cpp.obj):qnetworklistmanagerevents.cpp:(.text$_ZN25QNetworkListManagerEvents24checkBehindCaptivePortalEv+0x1d9): undefined reference to `__imp_VariantClear'
C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/13.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: C:/Qt/6.6.0-static/plugins/networkinformation/libqnetworklistmanager.a(qnetworklistmanagerevents.cpp.obj):qnetworklistmanagerevents.cpp:(.text$_ZN25QNetworkListManagerEvents24checkBehindCaptivePortalEv+0x24d): undefined reference to `__imp_VariantClear'
collect2.exe: error: ld returned 1 exit status 

使用的编译器为gcc 13.2.0。

从报错信息来看,需要链接oleaut32.lib,但Qt编译时已经包含该库,且我在调试模式下测试过oleaut库是可用的。我已经尝试在项目.pro文件中添加LIBS += -loleaut32,但仍然出现相同错误。

部分编译输出显示链接命令中确实包含了该库:

libqwindows.a -ldwmapi -limm32 -loleaut32 -lsetupapi -lshlwapi -lwinspool
lib/libQt6Network.a -lbrotlidec -lbrotlicommon 

我的项目.pro文件内容如下:

QT += quick
QT += opengl
CONFIG += c++2a
CONFIG += static
QMAKE_CXXFLAGS += -std=c++2a
LIBS += -lgmp

SOURCES += \
    Squircle.cpp \
    glrenderer.cpp \
    main.cpp \

RESOURCES += \
    qml.qrc

qnx: target.path = /tmp/$${TARGET}/bin
else: unix:!android: target.path = /opt/$${TARGET}/bin
!isEmpty(target.path): INSTALLS += target

HEADERS += \
    Squircle.h \
    glrenderer.h \

DISTFILES += main.qml

除了改用动态编译,还有什么解决方案?


内容的提问来源于stack exchange,提问作者John Smith

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.06 02:15:36