qmake 和 QT_INSTALL_PREFIX。如何为 Qt 库选择新位置?

问题描述 投票:0回答:4

我是 qmake 新手,我正在尝试构建一个现有的应用程序。 Qt 最初安装在 /usr/local/lib/Qt-4.3.5 中,“qmake -query QT_INSTALL_PREFIX”返回该路径。

我已将 Qt 库移动到另一个位置,生成的 Makefile 中填充了 /usr/local 原始路径。

如何强制 qmake 使用我选择的新位置而不重新编译 Qt?

qt build qmake
4个回答
39
投票

我正在研究这个问题,发现了一种通过使用

qt.conf
文件自定义 qt 的方法(在 qt 4.7.2 中)。

就我而言,我添加了一个

qt4-4.7.2/bin/qt.conf
(它必须与
qmake
可执行文件位于同一位置)

包含以下内容:

[Paths]
Prefix = c:/my_path/to/qt4-4.7.2

并且 qmake -query 开始返回正确的路径!

请参阅:http://doc.qt.io/qt-4.8/qt-conf.html了解更多详情


[更新:] 至少从 Qt 5.3.1 开始(在 Windows 8 上使用 5.3.1 和 5.5 的静态版本进行测试),您可以简单地执行以下操作

[Paths]
Prefix = ..

并将 Qt 安装部署到任何地方。


9
投票

这是从 qconfig.cpp 编译到 qmake 中的“内置”。最好的方法是使用另一个 - 前缀重新配置 Qt 并不幸地重建。对于大多数其他变量,您可以使用 .qmake.cache 文件。见

http://doc.qt.digia.com/qt/qmake-environment-reference.html

了解更多信息


2
投票

正如 Henrik Hartz 所指出的,QT_INSTALL_PREFIX 是内置的,无法更改。但是,如果您只是想解决暂时重建 Qt 的问题,那么您可以尝试以下操作:

查询 qmake 的安装前缀,重新创建报告的目录结构,并使用符号链接或硬链接到重新定位的 Qt 版本所在的位置。例如。在 Linux 上

  • 获取
    /new/Qt/location/bin/qmake -query QT_INSTALL_PREFIX
    报告的路径。说这个报道
    /Parent/Dirs/Prefix
  • 创建路径的任何父目录,例如
    mkdir -p /Parent/Dirs/
  • 指向新位置的符号链接,例如
    ln -s /new/Qt/location /Parent/Dirs/Prefix

如果您有一群开发人员需要使用相同的预构建版本的 Qt,则上述内容也很有用,其中该 Qt 版本不一定复制到所有开发人员计算机上的相同路径,并且您只需需要将 Qt 共享库与您的应用程序捆绑在一起以供最终用户使用(即您不会传送标头或构建工具)。


0
投票

我知道这是一个旧的,但也许它仍然会对某人有帮助。

我在我的系统上构建了 Qt 5.x 版本的完整列表(不同产品需要),并且我总是执行以下操作:

  1. 创建一个文件夹,例如D:\SDK\Qt.15.12\x64

  2. 将 qt zip 文件解压到其中(跳过复制 qt-everywhere... 文件夹,以便最后配置文件位于 D:\SDK\Qt .15.12\x6

© www.soinside.com 2019 - 2024. All rights reserved.