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

Pio*_*ost 20 windows installation configuration qt make-install

我找不到有关如何在Windows上安装Qt的任何信息.
在wiki文章中如何在Mac和Linux上设置阴影构建,其中有脚本中的-prefix选项说明,configure但此选项在Windows上不可用.
我知道我可以直接使用构建文件夹中的Qt,但是不执行安装步骤似乎不对.这种方法的一个问题是尺寸; Qt的构建文件夹占用大约4GB的空间,而使用二进制安装程序安装后,Qt需要大约1GB的空间.我猜不同之处在于构建期间创建的临时文件.我希望一些安装过程只安装(复制)所需的文件,在build文件夹中保留临时文件.

Pio*_*ost 27

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

  1. 清理在构建文件夹中
    运行make clean以删除所有临时文件.

  2. 复制构建文件夹移动到Qt"已安装"的位置.我们称之为INSTALL_DIR.
  3. 修复qmake.exe可执行文件中硬编码的路径
    运行qmake -query以查看编译(硬编码)到qmake和
    a中的路径.通过将其替换为INSTALL_DIRusing qmake -set(1)来修复包含构建文件夹的路径.

    b.qt.conf在其中指定的INSTALL_DIR新Qt路径的bin子文件夹中创建一个文件.
  4. 添加当前目录以包含路径
    在Qt提供的二进制分发中,pwd包含在其中QMAKE_INCDIR,因此最终在您的项目中包含路径为".".默认情况下,在自定义生成的Qt中不会发生这种情况,因此您必须将以下行添加到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维基页面.查看他的Qt(Qt4)Opensource Windows安装程序的预构建二进制文件与MSVC 2008项目,让您轻松解决上述问题.


Okt*_*ist 14

这个答案取代了上面Piotr(目前评价最高的)答案的第3步和第5步,但你可能仍然需要在他的答案中采取其他步骤,这取决于你想要实现的目标.

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

cd <path>
installer.exe --runoperation QtPatch windows <path> qt5
Run Code Online (Sandbox Code Playgroud)

<path>移动后用Qt目录的完整路径替换(qtbase如果您使用的是Qt 5,则为目录).qt5如果您使用的是Qt 4,请省略最后一个参数.

这将修复qmake.exe,.prl文件和其他文件中的硬编码路径.它为您提供了官方安装程序在这方面完全相同的行为.

对于最初的举动,nmake "INSTALL_ROOT=\somewhere" install对我有用.所以这是Piotr的答案的第1步和第2步.我不需要步骤4或6,FWIW.

  • 更新路径:https://code.qt.io/cgit/installer-framework/installer-framework.git/tree/src/libs/installer/qtpatch.cpp https://code.qt.io/cgit/qtsdk/ qtsdk.git/tree/packaging-tools/configurations/pkg_templates/pkg_510/qt/meta/installscript.qs https://doc.qt.io/qtinstallerframework/operations.html (2认同)

mic*_*mic 8

我可以使用前缀选项在WINDOWS(Visual Studio构建)上配置QT 5,如:

configure -prefix C:\the\path\I\want ...
Run Code Online (Sandbox Code Playgroud)

然后打电话:

nmake
nmake install
Run Code Online (Sandbox Code Playgroud)

后者将在C:\ the\path\I\want中安装Qt.

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


rub*_*nvb 7

很奇怪的人声称Windows上没有"make install".

我已经多次使用它,我同意它不是在其他平台上的,但它符合它的目的.

我如何在Windows上使用Qt的make install(来自cmd):

configure
(n/mingw32-)make
(n/mingw32-)make docs
(n/mingw32-)make install
Run Code Online (Sandbox Code Playgroud)

make install位复制所有必需的标头,以便能够删除源目录.删除所有对象和不必要的东西:

del /S /Q *.obj lib\*.dll
rmdir /S /Q docs-build qmake tools src
Run Code Online (Sandbox Code Playgroud)

这允许您删除源目录.我不知道这对调试Qt源代码有什么影响,但它确实减少了阴影构建的大小.我使用它来维护最小尺寸的32位和64位版本.

  • 我们去了:http://code.google.com/p/qt-msvc-installer/wiki/RelocationTricks.一点都不容易...... (2认同)