【问题标题】:Where does qmake look for pri files?qmake 在哪里查找 pri 文件?
【发布时间】:2016-08-09 13:46:43
【问题描述】:

我有以下设置(使用 qt 5.6.1-1):

qtbase/bin
...
qtbase/mkspecs
...
qtdeclarative/mkspecs

尝试构建 qtquickcontrols 时出现以下错误:

qmake
make
Some of the required modules (qtHaveModule(quick)) are not available.
Skipped.

我认为这是因为 qmake 只在 qtbase/mkspecs 中寻找 .pri 文件。是否有环境变量来设置 mkspecs 搜索路径?

我尝试设置 QMAKESPEC、QT_PLUGIN_PATH 和 INCLUDEPATH,但无法通过错误消息。

构建过程:

tar -xf qtbase-opensource-src-5.6.1.tar.xz && cd
./configure -prefix=qtbase/prefix
make
make install

tar -xf qtdeclarative-opensource-src-5.6.1.tar.xz && cd
qmake PREFIX=qtdeclarative/prefix
make install

因写入 qtbase/prefix 错误而失败(构建用户不可写入)

sed -i s#INSTALL_ROOT)/qtbase/prefix#INSTALL_ROOT)/qtdeclarative/prefix
make install

tar -xf qtquickcontrols-opensource-src-5.6.1.tar.xz && cd
qmake PREFIX=qtquickcontrols/prefix
make install

失败 一些必需的模块 (qtHaveModule(quick)) 不可用。 跳过。

【问题讨论】:

  • 通过获取完整的源代码并构建所有内容,您的生活将变得更加简单。然后,您无需担心任何事情,它就可以工作。您也不应该在源文件夹中构建。对于任何版本的 Qt,您都至少有 3 个文件夹:source、build 和 install。

标签: qt qmake


【解决方案1】:

如果您有正确设置的 Qt 安装,则不会有问题。确保:

  1. 您已编译所有模块。

  2. 您尚未移动您的 Qt 构建:它具有硬编码路径,一旦构建就无法移动。

如果您还没有在自己的构建文件夹中构建 Qt,您还应该更喜欢它。

【讨论】:

  • 我使用 qmake PREFIX=/absolute/path/to/dir && make install 构建了 qtbase 和 qtdeclarative 并且没有移动它们。但是在构建 qtdeclarative 时,我有路径 $(INSTALL_ROOT)/qtbase/prefix 而不是 $(INSTALL_ROOT)/qtdeclarative/prefix。在运行 make install 之前,我用 qtdeclarative/prefix 替换了 $(INSTALL_ROOT)/qtbase/prefix。这可能是问题吗?传递前缀的正确方法是什么?
  • 你不应该做任何事情。在构建目录中运行配置,并为配置提供安装前缀(而不是通过环境变量!)。然后构建您想要的模块,然后安装它们。您应该进行并行构建以加快速度,如果您立即执行make install,这些构建会失败,您应该执行make -j && make -j install
  • 运行 qmake 不会生成 ./configure 文件。并且在 tarball 中没有一个 download.qt.io/official_releases/qt/5.6/5.6.1-1/submodules/… 我错过了什么?
  • 你需要一个完整的源码压缩包,而且你一开始没有使用 qmake 构建 Qt。在此之前,您需要configure 为您构建 qmake!您做错了什么,请将您的确切步骤(从安装了开发工具的干净系统开始)编辑到问题中。
  • 所以我更新了我采取的步骤。我设法构建了其他 qt 模块,但我认为它们没有使用 qtHaveModule 宏。在从 qtbase cmake 文件中删除 NO_DEFAULT_PATH 后,还构建依赖于 qt 并使用 cmake 的软件包,我设法构建了所有 kde 框架第 1 层和第 2 层(这在很大程度上取决于 qt)
猜你喜欢
  • 1970-01-01
  • 2013-04-10
  • 1970-01-01
  • 2014-01-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-04-02
  • 2018-02-16
相关资源
最近更新 更多