qt - 使用 qmake 而不需要 Qt 开销?

标签 qt ubuntu-16.04 qmake build-tools

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

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

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

最佳答案

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

的符号链接(symbolic link)

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

您可以选择:

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

* 手动创建符号链接(symbolic link)的正确位置实际上是 /usr/local/bin 因为如果您在 /usr/bin 中有符号链接(symbolic link),则安装 qt5-default 包将会失败,因为 qt5-default 想要创建的符号链接(symbolic link)已经存在。但是,您位于 docker 容器中,实际上可以控制是否安装 qt5-default ,如果您在 /usr/local/bin 中创建符号链接(symbolic link),则必须确保将 /usr/local/bin 添加到您的 $PATH 中,这对于这种情况来说是多余的。

关于qt - 使用 qmake 而不需要 Qt 开销?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42580680/

相关文章:

java - 无法在 Ubuntu 16.04 上编译 java

python - ansible 剧本 : the python mysqldb module is required 出错

c++ - QMake-如何以及在何处添加链接器标志?

c++ - 合并多个 QPixmaps 的问题

c++ - 如何简化此 cmake 文件?

android - 为 QLineEdit 选择输入键盘类型

c++ - 添加新文件时需要更新 Qt .pro 和 Visual Studio .vcxproj

c++ - QML ListView 和段错误

Git推送错误: Unable to create '.git/refs/remotes/jr/master.lock' : File exists

visual-studio - 在 qmake 生成的 .vcxproj 中导入 .props 文件