Linux中的qmake -query内部设置 - 它们在哪里?

时间:2011-10-13 01:25:38

标签: linux qt ubuntu-11.04

我正在使用ptxdist构建一个带有交叉编译器的Linux系统。它允许我配置Qt4进行安装,并构建和安装qt-everywhere-opensource-src-4.6.3好的。但是,qmake内部设置搞砸了,我不知道如何修复它们。

当我运行qmake -query时,我得到:

me@ubuntu:~$ qmake -query
QT_INSTALL_PREFIX:/
QT_INSTALL_DATA:/
QT_INSTALL_DOCS://doc
QT_INSTALL_HEADERS://include
QT_INSTALL_LIBS://lib
QT_INSTALL_BINS://bin
QT_INSTALL_PLUGINS://plugins
QT_INSTALL_TRANSLATIONS://translations
QT_INSTALL_CONFIGURATION:/etc/xdg
QT_INSTALL_EXAMPLES://examples
QT_INSTALL_DEMOS://demos
QMAKE_MKSPECS://mkspecs
QMAKE_VERSION:2.01a
QT_VERSION:4.6.3

通过一些研究,看起来这可以通过简单地重建Qt来解决,但它并没有解决这个问题。我挖了一下构建输出,看起来Qt构建的./configure命令有“-prefix / usr”,所以我不知道为什么没有修复它。

如果可能,我想手动修复这些内部值,因为Qt构建需要数小时。有谁知道怎么做?

3 个答案:

答案 0 :(得分:3)

在配置时,这些路径在'src / corelib / global / qconfig.cpp'中硬编码,并在构建时最终硬编码到qmake中。它们也被硬编码到许多其他文件中,例如所有.la和.pc文件,更不用说Makefile安装规则了。

解决这个问题的唯一方法是弄清楚为什么configure会一直搞砸前缀。 configure是一个很大的shell脚本,所以很容易看到'-prefix'参数分配$ QT_INSTALL_PREFIX的位置,然后是对它进行的不同检查(比如通过'config.tests / unix / makeabs'运行它) 。尝试在$ QT_INSTALL_PREFIX更改之前/之后放置打印语句,您应该能够找到路径被搞砸的位置。

此外,您不必等待完整版本完成以判断是否设置了前缀 正确。在配置运行之后,看一下'src / corelib / global / qconfig.cpp',看看'qt_configure_prefix_path_str'被设置为什么。

答案 1 :(得分:0)

配置脚本可以模糊有关斜杠。您确定构建前缀是/ usr而不是/ usr /。

答案 2 :(得分:0)

您可以使用

手动设置这些属性
 qmake -set VARIABLE VALUE

它们使用QSettings存储,Qt内置持久性应用程序设置。

请参阅Configuring qmake's Environment