gpt4 book ai didi

c++ - 在 Windows 上编译静态 QT 应用程序

转载 作者:行者123 更新时间:2023-11-30 01:27:33 25 4
gpt4 key购买 nike

我是 QT 的新手,我很享受这种体验,但我无法设法将 QT 库静态链接到输出二进制文件。当我在 QT 目录之外运行输出文件时,我得到 The program can't start because QtCored4.dll is missing。显然 QT 正在动态链接他们的库并请求我没有的 .dll。有没有办法将 QT 的库静态编译成静态二进制文件,这样就不需要任何 QT 的 dll?我问这个是因为我的项目已经有多达 11 个 .dll,我真的很想减少必须与我的软件一起分发的文件数量。尺寸对我来说不是问题。谢谢。

我尝试将 CONFIG += static 添加到 .pro 文件,但没有成功。

最佳答案

首先,除非您购买了商业许可证,否则您不能静态链接 Qt。这样做会使您违反分发非商业版本的 LGPL 许可。我感受到你的痛苦,我的软件有很多很多 DLL。

值得庆幸的是,如果您使用安装程序,您可能确实拥有 DLL:您不需要从源代码构建,这应该会自动完成。你会在 Qt\Version\bin 中找到它们,其中 Qt 是你安装 Qt 的目录,version 是你安装的 Qt 的版本。比如我的在G:\Libraries\Qt\4.7.1\bin中。

但是,我确实遇到了一些问题,即没有构建 DLL 之一——一个用于与 OpenGL 一起工作——并为此执行了重建。我在切换 Visual Studio 版本时也这样做过。我认为这样做很方便,很简单,在Qt目录下打开一个终端,然后执行:

configure.exe -platform XXX'

其中 XXX 表示您要执行的构建类型。有效选项包括 win32-msvc2005、win32-msvc2008、win32-msvc2010。所以我使用:

configure.exe -platform win32-msvc2010'

其他选项详解here .如果您已经下载了源代码,则这些说明适用,但是您可能必须将当前目录添加到路径变量中,如下所示:

set PATH=%cd%\bin;%PATH%

整个过程大约需要一个小时。

关于c++ - 在 Windows 上编译静态 QT 应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8767810/

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