我正在开发一个用QT5.11.2和QML开发的ESRI AppStudio 3.1应用程序。我想在Qt中运行我的应用程序,并能够使用qml场景工具预览它。我跟踪ESRI提供的步骤设置了这个程序,它一直运行良好。但是,我们只是在HTTPS上增加了通过JavaScript将JavaScript添加到API中的功能。这在通过AppStudio AppRun.exe工具(菜单>External> AppStudio > Run)启动应用程序时起作用,但在Qt场景中不起作用。在尝试进行HTTPS调用时,我会得到以下控制台错误:
qt.network.ssl: QSslSocket: cannot call unresolved function SSLv23_client_method
qt.network.ssl: QSslSocket: cannot call unresolved function SSL_CTX_new
qt.network.ssl: QSslSocket: cannot call unresolved function SSL_library_init
qt.network.ssl: QSslSocket: cannot call unresolved function ERR_get_error
qt.network.ssl: QSslSocket: cannot call unresolved function ERR_get_error我发现很多人在Qt应用程序中都有这个问题,并通过修复OpenSSL .dlls引用来解决这个问题。这个问题非常接近:然而,QSslSocket:无法调用未解析函数处理的是编译一个Qt应用程序,而不是为一个AppStudio应用程序运行Qt场景工具。
我的项目被设置为使用桌面QT5.11.2 MSVC2017 64位(msvc2017_64)工具包运行,并且我已经确保libeay32.dll和ssleay32.dll文件在C:\Qt\Qt5.11.2\5.11.2\msvc2017_64\bin中。我已经验证过,C:\Qt\Qt5.11.2\5.11.2\msvc2017_64\bin\qmlscene.exe.正在启动QtCreator。如何使网络请求工作?
发布于 2018-11-30 21:22:06
在我研究这个错误的某个地方,我发现这可能是由于所使用的OpenSSL库的错误版本造成的。我抄袭
%USERPROFILE%\Applications\ArcGIS\AppStudio\bin\libeay32.dll
%USERPROFILE%\Applications\ArcGIS\AppStudio\bin\ssleay32.dll 在C:\Qt\Qt5.11.2\5.11.2\msvc2017_64\bin中替换存在的那些(我不确定它们是否从一开始就在那里,或者我是否在从OpenSSL网站下载它们之后添加了它们)。这解决了我的问题!
https://stackoverflow.com/questions/53565091
复制相似问题