构建后如何在Windows上安装Qt?

构建后如何在Windows上安装Qt?,windows,qt,configuration,installation,make-install,Windows,Qt,Configuration,Installation,Make Install,我找不到有关如何安装Windows上构建的Qt的任何信息。 在wiki文章中,配置脚本中有对-前缀选项的描述,但此选项在Windows上不可用。 我知道我可以从build文件夹中直接使用Qt,但不执行安装步骤似乎并不合适。这种方法的一个问题是规模;Qt的build文件夹需要大约4GB的空间,而在使用二进制安装程序安装之后,Qt需要大约1GB的空间。我想这是因为在构建过程中创建了临时文件。我希望某些安装过程只安装(复制)所需的文件,并将临时文件保留在生成文件夹中。Windows上的Qt无法使用ma

我找不到有关如何安装Windows上构建的Qt的任何信息。
在wiki文章中,
配置
脚本中有对
-前缀
选项的描述,但此选项在Windows上不可用。

我知道我可以从build文件夹中直接使用Qt,但不执行安装步骤似乎并不合适。这种方法的一个问题是规模;Qt的build文件夹需要大约4GB的空间,而在使用二进制安装程序安装之后,Qt需要大约1GB的空间。我想这是因为在构建过程中创建了临时文件。我希望某些安装过程只安装(复制)所需的文件,并将临时文件保留在生成文件夹中。

Windows上的Qt无法使用
make install
进行安装,您会注意到,用于Windows的Qt installer只是为新安装位置修补DLL和PDB


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

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

  • 清洁
    在生成文件夹中运行
    makeclean
    ,删除所有临时文件
  • 移动
    将生成文件夹复制到要“安装”Qt的位置。我们称之为
    INSTALL\u DIR
  • 修复在
    qmake.exe
    可执行文件中硬编码的路径 运行
    qmake-query
    查看哪些路径被编译(硬编码)为qmake和
    A.修复包含生成文件夹的路径,方法是使用
    qmake-set
    (1)将其替换为
    INSTALL\u DIR


    B在
    INSTALL\u DIR
    的bin子文件夹中创建一个文件,指定其中的新Qt路径
  • 添加当前目录以包括路径
    在Qt提供的二进制发行版中,pwd包含在
    QMAKE\u INCDIR
    中,因此在您的项目include路径中以“.”结束。默认情况下,这不会发生在自定义构建的Qt中,因此您必须将以下行添加到
    mkspecs/YOUR-PLATFORM-HERE/qmake.conf
    文件中:
    QMAKE\u INCDIR+=”
  • 修复
    prl
    文件

    将Qt组件添加到项目文件(例如
    CONFIG+=uitools
    )时,Qt在
    %QTDIR%/lib/qtutools.prl
    中查找该组件的库依赖项。这些文件将具有配置和构建Qt的目录的硬编码路径。您必须将所有
    lib/*.prl
    文件的构建目录替换为您将Qt移动到的目录
  • 使源可用
    如果进行了卷影生成(生成在包含源的文件夹之外的文件夹中生成),则
    include
    子文件夹中的标题仅转发到原始标题。比如,
    BUILD\u DIR\include\QtCore\qabstractanimation.h
    看起来像这样
    #包括“SRC_DIR/SRC/corelib/animation/qabstractanimation.h”

    如果您不想依赖包含源的文件夹的存在,则必须将
    SRC_DIR/SRC
    子文件夹复制到目标文件夹,并修复
    include
    文件夹中的所有标题,以便它们转发到
    SRC
    子文件夹的新位置
  • 底线是:
    在Windows下构建Qt的过程使得在构建之后移动(安装)Qt变得非常方便。只有在……的情况下,你才应该这样做。。。我找不到任何好的理由去经历这些麻烦

    记住
    最简单的方法是将Qt的源代码放在构建之后想要Qt停留的文件夹中,并在此文件夹中进行构建。这使得除上述第1步和第4步以外的所有步骤都不必要

    1)
    使用
    qmake-set设置的变量保存在注册表项中
    HKEY\U CURRENT\U USER\Software\TROLTECH\QMake\

    因此,当您希望使用不同版本的Qt的不同项目恰好具有相同版本的qmake时,您可能会遇到问题。在这种情况下,更好的解决方案是使用
    qt.conf
    文件(实际上是文件,因为每次安装qt都需要一个文件)(选项3b)


    上面的许多信息来自Gabe Rudy编写的wiki页面。查看他的项目,它为您提供了上述问题的简单解决方案。

    人们声称Windows上没有“makeinstall”,这很奇怪

    我已经使用过很多次了,我同意它不是其他平台上的,但它可以达到它的目的

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

    makeinstall位复制所有必要的头,以便能够删除源目录。删除所有对象和不必要的内容:

    del /S /Q *.obj lib\*.dll
    rmdir /S /Q docs-build qmake tools src
    
    这允许您删除源目录。我不知道这对调试Qt源代码有什么影响,但它确实减少了影子构建的大小。我使用它来维护最小大小的32位和64位版本。

    步骤1:移动Qt

    • 剪贴
    • 当前目录-C:\tools\Qt
    • 目标目录-C:\sim\dep\Qt
    步骤2:获取旧的Qt目录

    • 转到C:\sim\dep\Qt\2010.02.1\Qt
    • 打开.qmake.cache
    • 查找变量QT_源树
    • 注意QT_SOURCE_TREE的值
    • 我的是C:\tools\Qt\2010.02.1\Qt
    步骤3:修补Qt

    • 转到C:\sim\dep\Qt\2010.02.1\bin
    • 语法为qpatch.exe list oldDir newDir
    • 用于修补windows C:\tools\Qt\2010.02.1\Qt C:\sim\dep\Qt\2010.02.1\Qt的qpatch.exe文件
    步骤4:设置环境变量

    • 设置QTDIR=C:\sim\dep\Qt\2010.02.1\Qt
    • 设置QMAKESPEC=C:\sim\dep\Qt\2010.02.1\Qt\mkspecs\win32-g++
    • 设置路径=%PATH%;C:\sim\dep\Qt\2010.02.1\Qt\bin
    • 设置路径=%PATH%;C:\sim\d
      del /S /Q *.obj lib\*.dll
      rmdir /S /Q docs-build qmake tools src
      
      fart -c -i -r Makefile* $(INSTALL_ROOT)\qt-4.8.3 $(INSTALL_ROOT)\my-install-dir
      set INSTALL_ROOT=
      mingw32-make install
      
      [Paths]
      Prefix=C:/my-install-dir
      Translations = translations
      
      cd <path>
      installer.exe --runoperation QtPatch windows <path> qt5
      
      configure -prefix C:\the\path\I\want ...
      
      nmake
      nmake install