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

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

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

有帮助吗?

解决方案

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

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

有关的详细信息

其他提示

我一直在寻找这个发现,通过与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你可以简单地做(具有5.3.1静态版本和5.5在Windows 8测试)

[Paths]
Prefix = ..

和任何地方部署Qt的安装。

正如 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 共享库与最终用户的应用程序捆绑在一起(即您不会发送标头或构建工具)。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top