我是 qmake 新手,我正在尝试构建一个现有的应用程序。 Qt 最初安装在 /usr/local/lib/Qt-4.3.5 中,“qmake -query QT_INSTALL_PREFIX”返回该路径。
我已将 Qt 库移动到另一个位置,生成的 Makefile 中填充了 /usr/local 原始路径。
如何强制 qmake 使用我选择的新位置而不重新编译 Qt?
我正在研究这个问题,发现了一种通过使用
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 安装部署到任何地方。
这是从 qconfig.cpp 编译到 qmake 中的“内置”。最好的方法是使用另一个 - 前缀重新配置 Qt 并不幸地重建。对于大多数其他变量,您可以使用 .qmake.cache 文件。见
http://doc.qt.digia.com/qt/qmake-environment-reference.html
了解更多信息
正如 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 共享库与您的应用程序捆绑在一起以供最终用户使用(即您不会传送标头或构建工具)。
我知道这是一个旧的,但也许它仍然会对某人有帮助。
我在我的系统上构建了 Qt 5.x 版本的完整列表(不同产品需要),并且我总是执行以下操作:
创建一个文件夹,例如D:\SDK\Qt.15.12\x64
将 qt zip 文件解压到其中(跳过复制 qt-everywhere... 文件夹,以便最后配置文件位于 D:\SDK\Qt .15.12\x6