如何在build立后在Windows上安装Qt?

我找不到有关如何安装Windows上构build的Qt的任何信息。
在wiki文章中如何在Mac和Linux上设置阴影构build在configure脚本中有-prefix选项的描述,但是这个选项在Windows上不可用。
我知道我可以从build文件夹中直接使用Qt,但是不执行安装步骤似乎不正确。 这种方法的一个问题是大小, Qt的生成文件夹需要大约4GB的空间,而使用二进制安装程序安装Qt需要大约1GB的空间。 我猜这个区别是由于在构build过程中创build的临时文件。 我希望一些安装程序会安装(复制)只需要在build文件夹中留下临时文件的文件。

正如İsmail所说,Windows上没有安装Qt的步骤。 但是可以尝试通过执行以下操作来逼近它。

  1. 清洁的
    在build文件夹中运行make clean以删除所有临时文件。
  2. 移动
    复制生成文件夹到你想Qt“安装”的地方。 我们称之为INSTALL_DIR
  3. 修复qmake.exe可执行文件中硬编码的路径
    运行qmake -query查看哪些路径被编译(硬编码)到qmake和
    一个。 修复包含build文件夹的路径,用qmake -set (1)替换为INSTALL_DIR
    要么
    INSTALL_DIR的bin子文件夹中创建一个qt.conf文件,在其中指定新的Qt路径。
  4. 添加当前目录以包含路径
    在Qt提供的二进制发行版中,pwd包含在QMAKE_INCDIR ,因此在项目中包含路径为“。”。 这在默认情况下不会在定制的Qt中发生,因此您必须mkspecs/YOUR-PLATFORM-HERE/qmake.conf添加到mkspecs/YOUR-PLATFORM-HERE/qmake.conf文件中:
    QMAKE_INCDIR += "."
  5. 修复prl文件
    当您将Qt组件添加到项目文件(例如CONFIG += uitools )时,Qt会查找%QTDIR%/lib/QtUiTools.prl来查找该组件的库依赖关系。 这些文件将具有Qt配置和构建目录的硬编码路径。 你必须用你为所有lib/*.prl文件移动Qt的目录来替换这个目录。
  6. 使源可用
    如果您进行了阴影构建(构建在包含源的文件夹之外的文件夹内), include子文件夹中的标题仅转发到原始标题。 例如; BUILD_DIR\include\QtCore\qabstractanimation.h看起来像这样
    #include "SRC_DIR/src/corelib/animation/qabstractanimation.h"
    如果您不想依赖包含源文件夹的文件夹,则必须将SRC_DIR/src子文件夹复制到目标文件夹,并修复include文件夹中的所有标题,以便转发到src子文件夹的新位置。

底线:
Windows下Qt的构建过程使得构建之后移动(安装)Qt变得非常困难。 你应该这样做,只有… …我找不到任何理由去经历这一切麻烦。

记得
简单的方法是把Qt的源文件放到你想要Qt的文件夹中,然后在这个文件夹中编译。 这使得上面的所有步骤,除了上面的1和4以外都是不必要

1)
您使用qmake -set设置的变量保存在注册表项中
HKEY_CURRENT_USER\Software\Trolltech\QMake\<QMAKE_VERSION>
正因为如此,如果您想要使用不同版本的Qt,并且碰巧拥有相同版本的qmake,可能会遇到问题。 在这种情况下,更好的解决方案是使用qt.conf文件(实际上是每个Qt安装需要一个文件的文件)(选项3b)。

上面的许多信息来自Gabe Rudy编写的RelocationTricks wiki页面。 查看他的Qt(Qt4)开源Windows预安装二进制文件MSVC 2008项目的安装程序,它可以让您轻松解决上述问题。

这个答案是Piotr(当前评分最高的)答案的第3步和第5步的替代,但是您可能仍然需要在答案中的其他步骤,具体取决于您要实现的目标。

  • 这是官方安装程序在安装过程中用来修复硬编码路径的操作: qt.520.win32_msvc2012.addons / meta / installscript.qs
  • 这是如何执行操作: qtpatchoperation.cpp
  • 这是它修复的文件列表: files-to-patch-windows-qt5
  • 这显示了如何从命令行作为独立命令调用安装程序操作: Operations(Qt Installer Framework Manual)

总结一下:在将你的Qt目录移动到你想要的位置之后,下载任何一个官方的Qt 安装程序 ,并用下面的命令行参数运行它:

 cd <path> installer.exe --runoperation QtPatch windows <path> qt5 

在你移动Qt目录后,把<path>替换成你的Qt目录的完整路径(如果你正在使用Qt 5,则使用qtbase目录)。 如果您使用的是Qt 4,则省略最终的qt5参数。

这将修复qmake.exe,.prl文件等硬编码路径。 它给你和官方安装者在这方面完全一样的行为。

对于第一步, nmake "INSTALL_ROOT=\somewhere" install适用于我。 所以这是Piotr的答案的第1步和第2步。 我不需要步骤4或6,FWIW。

我可以使用前缀选项在WINDOWS(Visual Studio版本)上配置QT 5,如下所示:

 configure -prefix C:\the\path\I\want ... 

然后打电话:

 nmake nmake install 

后者将在C:\ \ \ \ \我想要安装Qt。

到目前为止,我对Qt 5.2.1和5.3.x没有任何问题。 所以,以前的任何问题似乎现在都已经解决了。

很奇怪,人们声称在Windows上没有“make install”。

我已经使用过很多次了,我同意这不是在其他平台上的,但它是有用的。

如何在Windows上使用Qt的make install(从cmd):

 configure (n/mingw32-)make (n/mingw32-)make docs (n/mingw32-)make install 

make install位拷贝所有必要的头文件,以便能够删除你的源代码目录。 删除所有对象和不必要的东西:

 del /S /Q *.obj lib\*.dll rmdir /S /Q docs-build qmake tools src 

这使您可以删除源目录。 我不知道这对调试Qt源代码有什么影响,但它确实减少了阴影构建的大小。 我用它来保持32位和64位构建与最小的大小。

Windows上的Qt不能用make install ,你会注意到Qt安装程序的Windows只是为新安装位置打补丁dlls&pdbs。

我建议在你想安装的地方做一个阴影构建。 您可以手动删除*.obj文件来节省空间。

Qt自己的构建指令通过在每个Makefile中进行搜索/替换来显示如何完成。 假设源代码被提取到C:\ qt-4.8.3并且在该目录中执行构建,那么执行以下操作:

 fart -c -i -r Makefile* $(INSTALL_ROOT)\qt-4.8.3 $(INSTALL_ROOT)\my-install-dir set INSTALL_ROOT= mingw32-make install 

然后创建一个配置文件,告诉qmake它的新安装路径。 创建一个文本文件C:\ my-install-dir \ bin \ qt.conf:

 [Paths] Prefix=C:/my-install-dir Translations = translations 

然后,作为最后一步(正如Randy指出的那样),您需要修补qmake.exe,这可以使用一个名为QtMove的简单工具来完成。 同样的工具也会自动更新所有的prl文件。

第1步:移动Qt

  • 剪切和粘贴
  • 当前目录 – C:\ tools \ Qt
  • 目标目录-C:\ sim \ dep \ Qt

第2步:获取旧的Qt目录

  • 转到C:\ sim \ dep \ Qt \ 2010.02.1 \ Qt
  • 打开.qmake.cache
  • 找到变量QT_SOURCE_TREE
  • 请注意QT_SOURCE_TREE的值
  • 我的是C:\ tools \ Qt \ 2010.02.1 \ Qt

第3步:修补Qt

  • 转到C:\ sim \ dep \ Qt \ 2010.02.1 \ bin
  • 语法是qpatch.exe列表oldDir newDir
  • qpatch.exe文件到补丁窗口C:\ tools \ Qt \ 2010.02.1 \ Qt C:\ sim \ dep \ Qt \ 2010.02.1 \ Qt

第4步:设置环境变量

  • 设置QTDIR = C:\ sim \ dep \ Qt \ 2010.02.1 \ Qt
  • 设置QMAKESPEC = C:\ sim \ dep \ Qt \ 2010.02.1 \ Qt \ mkspecs \ win32-g ++
  • 设置PATH =%path%; C:\ sim \ dep \ Qt \ 2010.02.1 \ Qt \ bin
  • 设置PATH =%path%; C:\ sim \ dep \ Qt \ 2010.02.1 \ bin

你可以用批处理文件来完成所有这些。 这让我花了一段时间才解决,这为我节省了很多时间。 这是一个脚本来自动更新Qt安装到新的位置。 批处理文件在这里可用。

有一个简单的实用程序QtMove(http://www.runfastsoft.com)可以轻松地做到这一点&#x3002;

运行重新定位的qmake.exe生成你的.pro文件,一切都应该与新的Qt库相链接。