如何使用OpenSSL支持构建Qt5

时间:2014-06-17 10:54:31

标签: qt visual-c++ build openssl qt5

使用SSL支持构建Qt5的正确配置是什么?我目前使用以下命令行静态编译OpenSSL与VC2008:

perl Configure VC-WIN32 --prefix=C:\Build-OpenSSL-VC-32
ms\do_ms
nmake -f ms\nt.mak 
nmake -f ms\nt.mak install

配置Qt 5.3.1:

configure -developer-build -opensource -nomake examples -nomake tests -mp -confirm-license -opengl desktop -no-icu -skip qtserialport -skip qtwebkit-examples -platform win32-msvc2008 -openssl-linked OPENSSL_LIBS="-lssleay32 -llibeay32" -I C:\Build-OpenSSL-VC-32\include -L C:\Build-OpenSSL-VC-32\lib

我收到多个链接错误,如

moc_qnetworkreply.obj : error LNK2001: unresolved external symbol "public: bool __thiscall QSslCertificate::operator==(class QSslCertificate const &)const " (??8QSslCertificate@@QBE_NABV0@@Z)

如何使用OpenSSL支持链接编译Qt?我做错了什么?

1 个答案:

答案 0 :(得分:7)

好的,最后我发现在重新配置之前清理配置非常重要。在先前版本的Qt nmake confclean做了诀窍,但似乎它不再起作用了。根据{{​​3}}目前,git submodule foreach --recursive "git clean -dfx"代替nmake confclean非常有用。之后,需要对gdi32.lib和user32.ilb进行一些调整才能获得以下配置行:

configure -developer-build -opensource -nomake examples -nomake tests -mp -confirm-license -opengl desktop -no-icu -skip qtserialport -skip qtwebkit-examples -platform win32-msvc2008 -openssl-linked OPENSSL_LIBS="-lssleay32 -llibeay32" -I C:\Build-OpenSSL-VC-32\include -L C:\Build-OpenSSL-VC-32\lib -L "C:\Program Files\Microsoft SDKs\Windows\v6.0A\Lib" -l Gdi32 -l User32

然后

nmake

和Voilà。