繁体   English   中英

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

[英]Compiling a static QT application on Windows

我是QT的新手,除了我无法设法将QT库静态链接到输出二进制文件外,我还很喜欢这种体验。 当我在QT目录之外运行输出文件时,我得到The program can't start beacuse 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'

其他选项在这里详细说明。 如果已下载源代码,则适用这些说明,但是您可能必须将当前目录添加到path变量中,如下所示:

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

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

您需要下载QT的源数据包并进行编译。 这需要一些时间,但并不十分复杂。

  • 下载并解压缩QT源
  • 启动编译器外壳(Visual Studio或mingw)
  • 在QT源目录中执行配置-在此处添加用于静态编译的标志
  • 执行make(Visual Studio nmake)
  • 请等待几个小时,具体取决于机器的速度

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM