Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/qt/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用OpenSSL支持构建Qt5_Qt_Visual C++_Build_Openssl_Qt5 - Fatal编程技术网

如何使用OpenSSL支持构建Qt5

如何使用OpenSSL支持构建Qt5,qt,visual-c++,build,openssl,qt5,Qt,Visual C++,Build,Openssl,Qt5,使用SSL支持构建Qt5的正确配置是什么?我目前已使用以下命令行使用VC2008静态编译OpenSSL: 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 test

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

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)

如何让Qt与OpenSSL支持链接起来进行编译?我做错了什么?

好的,最后我发现在重新配置之前清理配置是非常重要的。在以前版本的Qt
nmake confclean
中实现了这一技巧,但它似乎不再有效。根据目前的情况,可以使用
git子模块foreach——递归的“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