在Ubuntu Linux上构建QT库

13

我正尝试按照文档中提到的指示,在Ubuntu Linux上构建QT库4.8.2。

这是我第二次尝试构建...我之前也尝试过,当构建过程经过12-13小时后仍未完成时,我认为出了问题,所以我从头开始。

现在已经过去将近24个小时,我已发出make命令(第二次尝试),构建过程仍在继续。终端没有显示任何错误。

在Ubuntu Linux上构建QT库真的需要这么长时间吗,还是我遗漏了什么?


2
除非你的电脑非常老旧且缓慢,否则不应该需要12个小时以上。在一台体面的现代计算机上,即使经过一个小时,我也可能会感到担忧。 - jdi
1
我正在使用亚马逊EC2微实例。 - Vinod
1
我不知道Qt在EC2微型实例上的编译性能预期如何,但我仍然认为12小时是很长的时间。 - jdi
2
最终,构建过程在约30小时内成功完成。 - Vinod
1
EC2微型实例非常慢。 - Steven Lu
显示剩余2条评论
2个回答

21
建立Qt即使在快速系统上也需要几个小时,如果您只进行默认的非并行构建。 默认情况下,它还会拉取许多您可能不需要的库。

因此,首先尝试的是使用make -j进行并行构建。 如果仍然花费太长时间,则尝试精简Qt生成的库。 例如,您是否需要QtWebKit? 如果计划在应用程序中使用嵌入式Web浏览器,则需要它。 如果不需要,则可以将构建时间缩短一半。 输入configure --help以查看options。 可以减少构建时间的一些有用选项是:

注意:以下某些选项在Qt5中不再适用

  • -fast - 如果你只是使用Qt而不是开发Qt本身,请使用此选项
  • -no-webkit - 如果您不需要嵌入式Web浏览器,则会有很大的差异
  • -release - 如果您不需要调试库,则可能会更快
  • -no-qt3-support - 对于新项目,您不需要此支持
  • -nomake examples - 不要构建示例
  • -nomake demos - 不要构建演示
  • -no-declarative - 如果您不使用QtQuick API,则省略此选项
  • -nomake docs - 不要构建文档(这可以节省很多时间)

如果您必须支付此Amazon实例中的时间成本,则另一种选择是在本地创建一个Ubuntu机器(在空闲机器或虚拟机中),并在那里调整选项,直到获得可行的配置,然后在Amazon实例上使用该构建配置。

编辑:

在Qt5中,该项目改为使用git子模块。因此,如果您是从git checkout构建,则默认行为是克隆所有子模块,如果存在您不需要的模块,则会大大增加构建时间。qt5存储库中有一个名为init-repository的脚本。您可以使用它来修剪本地存储库,仅包含您需要的子模块。例如:
git clone https://git.gitorious.org/qt/qt5.git
cd qt5
./init-repository --module-subset="qtbase qtdeclarative qtquick1"
configure --your-options-here
make -j

在我的机器上,我可以在大约10分钟内对qtbase进行基本构建。

在我的 Core2Duo 机器上,只编译 Qt5.7 的 qtbase 部分已经运行了将近1.5个小时!我一定做错了什么! - Anwar
Core2duo 处理器在进行 C++ 开发工作时性能非常低下,因此这并不令人感到意外。 - the_mandrill

0

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接