㈠ 为什么qtcreator的编译如此之慢
对于QtCreator编译速度慢的问题,有多种误解需要澄清。
首先,将Qt编译速度与MFC进行比较,这种观点是不正确的。实际情况下,由于Qt库的头文件设计合理,采用前置声明和公有类、私有类的模式,编译效率远高于MFC。MFC的编译速度较快主要归功于其默认启用的预处理头文件功能(PCH),这是所有C++项目都能利用的特性,并非MFC独有。通过在.pro文件中添加`PRECOMPILED_HEADER = stable.h`,指定一个头文件作为预处理文件,可以实现与MFC类似的效果。在`stable.h`文件中包含所有需要的Qt头文件,可以有效避免编译时引入过多代码。
为了进一步提高编译速度,可以使用`QMAKE_CXXFLAGS += /MP`指令来启用并行编译,利用多个编译进程同时处理不同cpp文件。这种方法比MFC的PCH更优,因为MFC的PCH配置容易出错,而Qt的配置则写在.pro文件中,一旦配置正确,稳定性较高。
对于大项目而言,硬盘性能是影响编译速度的主要瓶颈。使用SSD硬盘时,编译速度大约为20分钟左右;若使用机械硬盘,速度会降低约70%;使用内存盘编译则可提高30%的速度。如果编译速度仍然慢于预期,应检查代码中是否存在冗余或不必要的头文件包含。
关于Qt本身的编译速度,通常情况下并不慢,慢点主要体现在WebKit库和示例程序的编译上。默认情况下,Qt会编译所有的库和示例,而WebKit项目因其泛型技术使用广泛,编译时间较长。对于仅需要核心库的项目,编译速度会大幅提高,例如,仅编译QtCore可能只需1分钟,QtGui则大约5分钟。
对于Windows平台,建议使用Visual C++ 2008作为编译器。Qt与Visual C++的集成度较高,使用Visual C++ 2008+Qt进行项目开发效率会更高。此外,安装Visual Assist可以进一步提升开发效率。
总结而言,QtCreator编译速度慢的问题通常与项目规模、编译器选择和配置有关。通过优化配置和使用适当的编译工具,可以显着提高编译效率。
㈡ Xcode编译慢打包慢解决方法
1. 提高 XCode 编译时使用的线程数
defaults write com.apple.Xcode 48 cpu 占用会特别高 达到150%的样子,15寸 设置48比较好,否则操作其他因员工可能会卡
XCode 默认使用与 CPU 核数相同的线程来进行编译,但由于编译过程中的 IO 操作往往比 CPU 运算要多,因此适当的提升线程数可以在一定程度上加快编译速度。本人采用的是 4 核的 CPU ,将线程数改为 8 后编译速度略有提升。
2. 将 Debug Information Format 改为 DWARF
在工程对应Target的Build Settings中,找到Debug Information Format这一项,将Debug时的DWARF with dSYM file改为DWARF。
这一项设置的是是否将调试信息加入到可执行文件中,改为DWARF后,如果程序崩溃,将无法输出崩溃位置对应的函数堆栈,但由于Debug模式下可以在XCode中查看调试信息,所以改为DWARF影响并不大。这一项更改完之后,可以大幅提升编译速度。
// 这一条暂时不用管,默认配置
3. 将 Build Active Architecture Only 改为 Yes
在工程对应Target的Build Settings中,找到Build Active Architecture Only这一项,将Debug时的No改为Yes。
这一项设置的是是否仅编译当前架构的版本,如果为No,会编译所有架构的版本。需要注意的是,此选项在Release模式下必须为Yes,否则发布的ipa在部分设备上将不能运行。这一项更改完之后,可以显着提高编译速度。
在设置完以上三个项之后,相信编译时间会缩短很多。
4. 如何关掉 CCache 提高编译打包速度呢编写脚本,文件名称ccache
放到Xcode项目根目录,然后
详情见这篇帖子
https://www.jianshu.com/p/c9e3fb3dfa53
5. 去掉打包缓存
~/Library/Developer/Xcode/Procts
㈢ 为什么 Qt Creator 的编译如此之慢
取自知乎上的一篇文章
作者:姚冬
我是来反对楼上某些答案的。
我曾经用MFC写了金山词霸(大约20多万行),又用Qt写了YY语音(大约100多万行),算是对两种框架都比较有经验。
纠正几个错误的认识。
1. “用Qt写的程序编译比MFC慢”的说法是错误的
绝对错误,单位代码行数编译Qt远比MFC快得多,因为Qt库的头文件设计非常好,尽量都使用了前置声明,避免了头文件嵌套,几乎所有类都使用了公有类和私有类的设计,把没必要公开的声明放到私有头文件里,避免了编译时引入过多代码。而MFC没有这样的设计。
至于大家感觉MFC快主要原因是MFC工程默认打开了编译预处理头文件(PCH),但是这是VC编译器的特性,所有C++程序都可以用,不是MFC特有,Qt也可以使用 PCH
方法很简单,在你的 .pro 文件中加入一行
PRECOMPILED_HEADER = stable.h
指定 Stable.h这个头文件作为编译预处理文件,MFC里这个文件一般叫stdafx.h
然后在 stable.h里 包含你所用到的所有 Qt 头文件,如果你用了很多qt的类可以直接包含所有
比如 :
#include <QtCore>
#include <QtGui>
这两个文件里又包含了几乎所有Qt常用类
不用担心,即使包含了所有头文件也没关系,有了PCH再多头文件也没影响。
如果你还想编译再快点,可以在 .pro里加入下面一行
QMAKE_CXXFLAGS += /MP
指定/mp编译选项,编译器将使用并行编译,同时起多个编译进程并行编译不同的cpp
而且QT这种引入PCH的方法比MFC的好,由于MFC的PCH选项是每个工程逐个指定的,很容易被某些人搞坏,我曾经无数次修复PCH问题,但是Qt的选项是写在.pro里的,写一次就永远不会错。
MFC一旦弄坏了PCH,编译也慢得令人发指。
给个参考时间吧,YY最新版本大约 100多万行C++代码,rebuild debug和releae总共需要20多分钟,机器是i5 四核SSD硬盘。其实对于大项目硬盘才是瓶颈,如果换机械硬盘要慢差不多70%,有个同事用10G内存做了个内存盘编译,还能快30%。
如果你比这个慢,请检查自己的代码问题。
2. “QT本身编译慢”的说法是错的
Qt本身其实编译并不慢,慢的是webkit库和例子程序,你如果不改任何选项默认是会编译所有的,webkit本身就是个恐龙级项目,用了太多泛型技术,编译非常慢。另外Qt里附带了数百个例子工程,都编译一边也很慢。如果仅编译QT核心库是很快的,比如QtCore只需要1分钟,QtGui大约5分钟。
送个福利(仅限windows vc++ 2008):
configure.exe -qt-libjpeg -qt-zlib -qt-libpng -qt-libjpeg -qt-gif -no-libtiff -no-libmng -nomake examples -nomake demos -no-webkit -nomake doc -no-plugin-manifests -no-exceptions -no-rtti -no-qt3support -no-openssl -no-opengl -no-multimedia -no-3dnow -no-native-gestures -no-style-motif -no-style-cde -no-style-cleanlooks -no-style-plastique -no-sql-sqlite -no-dbus -platform win32-msvc2008
这是我自己用的Qt编译前的配置命令行,把我自己用不到的都去掉了,这样配置编译就快很多了。
我把 webkit examples demos 等大家伙都去掉了。如果你真的需要这些,可以安装Qt sdk里面有编译好的版本。
补充:Qt creator只是IDE,不是编译器,编译慢真的不关他的事,要看你具体用的编译器是什么。一般来说在Windows下就是minGW,也就是一个移植版本的GCC,的确是不如VC++里的CL快的。
如果是其它平台,那么编译器可以换成LLVM的clang,那就快很多了。
在Windows下来是用VC++吧,推荐VC2008,Qt和VC的IDE结合非常好,我现在的项目都是用VC2008+QT的,开发效率很高,记得装Visual Assist哦。
qmake -tp vc
可以用 .pro生产 .vcproj的VC工程文件,可以用VC++打开编译。
㈣ vs2017缂栬疟浠g爜鐢熸垚鐗瑰埆鎱锛
VisualStudio缂栬疟寰堟参瑙e喅锷炴硶锛氭墦寮vs2010镄勫伐鍏烽夐”锛岀幆澧>甯歌勪箣涓嬫煡鐪嬧濊呜変綋楠屸濋厤缃锛屽畠榛樻橀噹瀵熻ら夋嫨浜嗏濆熀鑴婅佷簬瀹㈡埛绔镐ц兘镊锷ㄨ皟鏁磋呜変綋楠屸濆苟钖鐢ㄧ‖浠跺浑锣勫浘褰㈠姞阃燂纴鍙栨秷阃夋嫨杩欎釜阃夋嫨銆
㈤ ue5c++编译慢
ue5c++编译慢,这个说法是错误的。根据查询相关资料显示:ue5c++本身其实编译并不慢,慢的是webkit库和例子程序,不改任何选项默认是会编译所有的,webkit本身就是个恐龙级项目,用了太多泛型技术,编译非常慢。另外Qt里附带了数百个例子工程,都编译一边也很慢。仅编译QT核心库是很快的,比如QtCore只需要1分钟,QtGui大约5分钟。