19

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

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

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

4

3 回答 3

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 安装。

于 2011-11-01T15:20:57.180 回答
9

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

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

了解更多信息

于 2009-05-27T06:16:57.577 回答
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 共享库与您的应用程序捆绑在一起(即您不会发送标头或构建工具)。

于 2011-02-17T14:41:32.000 回答