2011-10-13 68 views
3

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

当我运行的qmake -query我得到:

[email protected]:~$ 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

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

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

此外,您不必等待完整版本才能完成,以确定前缀是否已正确设置为 。配置运行后,查看'src/corelib/global/qconfig.cpp'并查看'qt_configure_prefix_path_str'设置为什么。

+1

谢谢 - 我试了几个小时,试图找到这个确切的信息。我认为他们不会在操作系统级别配置这些值是愚蠢的 - 在配置期间将它们构建到源代码中?那是1990年的事情,我想他们必须有他们的理由。 – PIntag

+0

哦,我仍然需要弄清楚如何让ptxdist重建并安装Qt的主机版本。看来问题在于,当我运行ptxdist配置并构建时,它只是重建Qt的目标版本。 – PIntag

0

配置脚本可能模糊了斜杠。你确定build前缀是/ usr而不是/ usr /。