gpt4 book ai didi

c++ - 有没有办法用静态 OpenSSL 构建静态 Qt?

转载 作者:IT老高 更新时间:2023-10-28 22:28:23 25 4
gpt4 key购买 nike

原始问题略有不同,但属于更重要的问题。

我正在尝试在 Windows 上使用静态 OpenSSL 将 Qt 5.2 构建为静态。

我的最终目标是发布单个二进制文件,而无需提供 libeay32.dll 和 ssleay32.dll。然而,在我看来,这是不可能的。我使用静态 openssl 库构建了静态 Qt,但似乎 Qt 完全忽略了提供的库并始终搜索 DLL。

This 答案还表明 QtNetwork 总是搜索 DLL 并忽略其他所有内容,但它还指出“两个选项是 将 OpenSSL 编译到 Qt...”但这似乎不是案例。

有人能给出明确的答案吗?

这是我的 Qt 配置(为便于阅读添加了换行符):

configure -static -qmake -opensource -nomake examples -opengl desktop
-platform win32-msvc2010 -openssl -I C:\git\openssl\build\include
-L C:\git\openssl\build\lib OPENSSL_LIBS="-llibeay32 -lssleay32 -lgdi32"

最佳答案

Is there any way to building static Qt with static OpenSSL?

当然,配置Qt时需要使用以下选项:

-openssl-linked

原因是QtNetwork默认使用QLibrary类动态打开库来获取必要的符号。

这是告诉 Qt 不要这样做的选项,并尊重正常的链接规则。

话虽如此,如果最终用户需要在没有您参与的情况下使用安全更新,则不建议对 openssl 使用静态链接。考虑一下如果你离开了会发生什么,不再从事这个项目,等等。

此外,此设置并未经常测试,因此您实际上可能会遇到一些应该在上游解决的问题,但这是针对相关用例的解决方案设计。

免责声明:因为 SO 是关于编程的,所以我忽略了静态链接对 Qt 的许可后果,所以我想快速提醒您注意正确的用法,以免陷入法律纠纷。

关于c++ - 有没有办法用静态 OpenSSL 构建静态 Qt?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20843180/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com