QT https SSL支持静态QT静态程序构建 - 仍然需要openssl dll


嗨,我

正在尝试静态编译我为 Windows 制作的 QT 程序,并将 openssl 库编译到可执行文件中。 我以为我成功了,但是如果没有Openssl dlls,我就无法运行porgram。 我在网上到处寻找解决方案,但无法找到解决方案。这是我所做的:

我通过编辑用于静态构建 qt 的 windows powershell 脚本将其传递给配置.bat然后运行它来构建:

-openssl-linked
-I C:OpenSSL-Win32include
-L C:OpenSSL-Win32libMinGW
OPENSSL_LIBS=""-lUser32 -lAdvapi32 -lGdi32 -lCrypt32""
OPENSSL_LIBS_DEBUG=-""-lssleay32 -llibeay32""
OPENSSL_LIBS_RELEASE=""-lssleay32 -llibeay32""

现在,如果没有openssl dll,可执行文件将无法工作。 我做错了什么吗?

您正在与OpenSSL的动态版本链接。您应该改为与静态链接:

-L C:OpenSSL-Win32libMinGWstatic

来自 Shining Light Productions 的答案:

依赖关系Walker将向你显示你的可执行文件依赖于哪些DLL。 MinGW库是使用VC++ DLL作为源代码"构建"的。 IIRC,没有静态的 MinGW 构建(为什么生成的 .a 文件是 如此庞大对我来说一直是一个谜)。

最新更新