使用没有Qt开销的qmake?

时间:2017-03-03 13:51:49

标签: qt ubuntu-16.04 qmake build-tools

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

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

这些lib中的大多数使用QMake作为buildtool,而不是以任何方式使用Qt。我们开始将CI-Jobs转移到docker容器中。现在我意识到我总是必须获得qt5-default(在Ubuntu 16上)才能使qmake工作。这是有意的吗?这给了相当大的开销。有没有人知道一种方法,在Ubuntu 16上使用qmake而不是让整个Qt安装在船上?

1 个答案:

答案 0 :(得分:1)

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

对于Ubuntu,/usr/bin...

您可以选择:

  1. 仅在Docker容器中安装x86_64-linux-gnu包并创建符号链接qt5-qmake - > /usr/bin/qmake。*
  2. 在构建软件时指定qmake二进制文件的完整路径,在{travis,gitlab,jenkins} CI配置
  3. /usr/lib/.../qt5添加到您的/usr/lib/.../qt5/bin
  4. *手动创建的符号链接的正确位置实际上是$PATH,因为如果/usr/local/bin中有符号链接,则安装/usr/bin包会失败,因为符号链接qt5-default想要创造已经存在。但是,您位于docker容器中,实际上可以控制是否安装qt5-default,如果您在qt5-default中创建符号链接,则必须确保将/usr/local/bin添加到/usr/local/bin对于那种情况来说太过分了。