qmake-在Linux中查询内部设置-它们在哪里?

qmake-在Linux中查询内部设置-它们在哪里?,linux,qt,ubuntu-11.04,Linux,Qt,Ubuntu 11.04,我正在使用ptxdist构建一个带有交叉编译器的Linux系统。它允许我为安装配置Qt4,并构建和安装qt-everywhere-opensource-src-4.6.3 Ok。然而,qmake的内部设置是错误的,我不知道如何修复它们 当我运行qmake-query时,我得到: me@ubuntu:~$ qmake -query QT_INSTALL_PREFIX:/ QT_INSTALL_DATA:/ QT_INSTALL_DOCS://doc QT_INSTALL_HEADERS://inc

我正在使用ptxdist构建一个带有交叉编译器的Linux系统。它允许我为安装配置Qt4,并构建和安装qt-everywhere-opensource-src-4.6.3 Ok。然而,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构建需要几个小时。有人知道怎么做吗?

配置脚本可能对斜杠模糊。您确定在配置时生成前缀是/usr而不是/usr/

这些路径在“src/corelib/global/qconfig.cpp”中硬编码,并在生成时硬编码到qmake中。它们还硬编码到许多其他文件中,如所有的.la和.pc文件,更不用说Makefile安装规则了

解决这个问题的唯一方法是弄清楚为什么configure总是把前缀搞砸。configure是一个大型shell脚本,因此很容易看到$QT_INSTALL_PREFIX是从“-PREFIX”参数分配的,然后是对其执行的不同检查(比如通过'config.tests/unix/makeabs'运行它)。尝试在$QT_INSTALL_前缀更改之前/之后放置print语句,您应该能够找到路径出错的地方

此外,您不必等到完整构建完成后才知道是否设置了前缀
正确地配置运行后,查看“src/corelib/global/qconfig.cpp”并查看“qt\u configure\u prefix\u path\u str”设置为什么。

您可以使用

 qmake -set VARIABLE VALUE
它们使用Qt内置的持久性应用程序设置进行存储


请看

谢谢——我在谷歌上搜索了几个小时,试图找到准确的信息。我认为他们不在操作系统级别配置这些值是愚蠢的——在配置期间将它们构建到源代码中?那是1990年的事。我想他们一定有他们的原因。哦,我仍然需要弄清楚如何让ptxdist重建并安装Qt的主机版本。问题似乎是,当我运行ptxdist配置和构建时,它只是在重建Qt的目标构建。