【问题标题】:Using qmake without Qt Overhead?在没有 Qt Overhead 的情况下使用 qmake?
【发布时间】:2017-03-03 13:51:48
【问题描述】:

我们在大型项目中经常使用一些较小的库。

我们仍然将这些较小库的单元测试作为独立的 CI 作业进行编译和运行。

这些库中的大多数使用 QMake 作为构建工具,而不是以任何方式使用 Qt。我们开始将 CI-Jobs 转移到 docker 容器中。现在我意识到我总是必须获得 qt5-default(在 Ubuntu 16 上)才能让 qmake 工作。这是故意的吗?这会产生相当大的开销。有谁知道在 Ubuntu 16 上使用 qmake 而不安装整个 Qt 的方法?

【问题讨论】:

  • qmakeqt5-qmake 的一部分。由于qmake 用于构建Qt 本身,它应该能够在没有qt5-default 的情况下工作。确保在您的专业文件中有CONFIG -= qt。如果你已经试过了,你能告诉你没有安装qt5-default时什么不起作用,你有什么错误信息吗?

标签: qt ubuntu-16.04 qmake build-tools


【解决方案1】:

您实际上并不需要安装 Qt 来让 qmake 工作。您需要qt5-default 的原因是大多数Linux 发行版都提供Qt5 和Qt4,它们具有相同的二进制文件,例如它们都有qmake 的版本,它们都将安装到/usr/bin。为了解决这个问题,Qt5 安装到/usr/lib/.../qt5,Qt4 安装到/usr/lib/.../qt4qt5-default 包从那里创建到/usr/bin 的符号链接

对于 Ubuntu,...x86_64-linux-gnu

您可以选择:

  1. 仅在您的 docker 容器中安装 qt5-qmake 包并创建符号链接 /usr/bin/qmake -> /usr/lib/.../qt5.*
  2. 在您的 {travis, gitlab, jenkins} CI 配置中构建软件时指定 qmake 二进制文件的完整路径
  3. /usr/lib/.../qt5/bin 添加到您的$PATH

* 手动创建符号链接的正确位置实际上是/usr/local/bin,因为如果您在/usr/bin 中有符号链接,安装qt5-default 软件包将失败,因为qt5-default 要创建的符号链接已经存在。但是,您在一个 docker 容器中,并且实际上可以控制是否安装了 qt5-default,如果您在 /usr/local/bin 中创建符号链接,您必须确保将 /usr/local/bin 添加到您的 $PATH,这有点过分场景。

【讨论】:

    最近更新 更多