Qt Creator 5.6 如何在一个项目中使用大量(3000+)小部件加速编译

Posted

技术标签:

【中文标题】Qt Creator 5.6 如何在一个项目中使用大量(3000+)小部件加速编译【英文标题】:Qt Creator 5.6 how to speed up compilation with large number (3000+) of widgets in one project 【发布时间】:2017-05-04 03:27:02 【问题描述】:

我正在实现一个 qt windows 桌面应用程序,它有 30 多个视图。我使用了一个包含 100 多页的 QStackedwidget。每页包含 100+ QWdiget。

现在,当我编译我的项目时,Qt Creator 5.6(带有 jom/msvc2013)在我的 MacBook Pro 2013(i5、8G、Windows 10)上需要 30 多分钟。编译时的CPU使用率 Microsoft C/C++ Compiler Driver 35%左右,内存占用400MB左右。

花这么长时间编译我的项目有意义吗?有什么方法可以在不更新硬件的情况下加快速度?

谢谢

【问题讨论】:

如果您的小部件很常见,或者您可以以某种方式加入类似的小部件,您可以使用.setEnabled(true/false) 和一些决定顺序和外观的功能。如果没有... 我敢打赌,Qt 元代码生成器需要这么长时间。除了并行编译和改进代码结构(包含更少的包含和更多的前向声明)之外,我认为你没有机会改进这么多。但是,如果您可以将其提高 3 倍,那也不错。 【参考方案1】:

您是否尝试过让 qmake 使用更多的 cpu 内核? Core i5 有 4 个核心,因此您可以设置:

set MAKEFLAGS=-j4

或者,如果您希望它是动态的,您可以尝试这个变量(我已经阅读过但自己没有使用过):

set MAKEFLAGS=-j%NUMBER_OF_PROCESSORS%

【讨论】:

以上是关于Qt Creator 5.6 如何在一个项目中使用大量(3000+)小部件加速编译的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 Qt Creator 将 C++ 头文件添加到 Qt 项目

如何在 Qt Creator 中添加包含路径?

qt creator 中如何使用c++库

使用 qt-creator 将库项目链接到 qt 控制台/小部件项目

如何在 Qt Creator 中配置项目的 CMakeLists.txt 文件,而不是一个项目

如何将 OpenCV 集成到 Qt Creator Android 项目中