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

PIn*_*tag 5 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
Run Code Online (Sandbox Code Playgroud)

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

如果可能的话,我想手动修复这些内部值,因为 Qt 构建需要几个小时。有谁知道如何做到这一点?

Bre*_*nks 4

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

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

此外,您不必等待完整构建完成即可判断前缀设置是否正确。配置运行后,查看“src/corelib/global/qconfig.cpp”并查看“qt_configure_prefix_path_str”的设置。