【发布时间】:2014-05-30 15:42:02
【问题描述】:
我有 QT 5.3 和一个使用 QWebView 小部件的应用程序。但是我有一台没有 SSE2 的 PC(QT 5.3 需要它),所以我决定从没有 SSE2 的源代码构建 QT 以在这台 PC 上运行我的应用程序。 QT 编译没有问题,但是当我想编译 QTWebKit 模块时出现错误:
(...)-LC:/qt-5.3.0/qtbase/lib -lQt5Positioning -LC:/qt-5.3.0/qtbase/lib -lQt5Sensors -LC:/qt-5.3.0/qtbase/lib -lQt5Core
Warning: resolving _cti_vm_throw by linking to @cti_vm_throw@4
Use --enable-stdcall-fixup to disable these warnings
Use --disable-stdcall-fixup to disable these fixups
C:/qt-5.3.0/qtwebkit/WebKitBuild/Release/Source/WebKit2/release/libWebKit2.a(QtNetworkAccessManager.o):QtNetworkAccessManager.cpp:(.text+0x310): undefined reference to `_imp___ZN13QNetworkReply15ignoreSslErrorsERK5QListI9QSslErrorE'
C:/qt-5.3.0/qtwebkit/WebKitBuild/Release/Source/WebKit2/release/libWebKit2.a(QtNetworkAccessManager.o):QtNetworkAccessManager.cpp:(.text$_ZN5QListI9QSslErrorED1 Ev[__ZN5QListI9QSslErrorED1Ev]+0x14): undefined reference to `_imp___ZN9QSslErrorD1Ev'
C:/Qt/Tools/mingw482_32/bin/../lib/gcc/i686-w64-mingw32/4.8.2/../../../../i686-w64-mingw32/bin/ld.exe: C:/qt-5.3.0/qtwebkit/WebKitBuild/Release/Source/WebKit2/release/libWebKit2.a(QtNetworkAccessManager.o): bad reloc address 0x14 in section `.text$_ZN5QListI9QSslErrorED1Ev[__ZN5QListI9QSslErrorED1Ev]'
collect2.exe: error: ld returned 1 exit status
我想是因为
Warning: resolving _cti_vm_throw by linking to @cti_vm_throw@4
我也想过 webkit 中的一个错误,但我不确定。
你能帮我解决这个问题吗?
【问题讨论】:
-
你有内置支持 ssl 的 Qt(网络模块)吗?如果没有,请自己构建。另外,请阅读qt tagwiki。
-
感谢您的回复。我检查了配置,看来 OpenSSL 支持是“是”。
-
您是否尝试针对发布的 QtNetwork 5.3 dll 构建发布?你能检查一下 qtnetwork dll 是否有这些符号吗?顺便说一句,您的错误是未定义的引用,绝对不是警告。
-
嗯,我不知道。我刚刚调试并发布了 QtNetwork 5.3 dll。 (我运行这个脚本来构建 QtWebKit:“perl Tools\Scripts\build-webkit --qt --release”)
-
我好像没有这些符号。我在调试 QNetwork dll 中只有“ZN13QNetworkReply15ignoreSslErrorsEv”,但在发布 dll 中没有。我必须重新构建 QT 吗?