编辑
2024-04-28
嵌入式
00
请注意,本文编写于 362 天前,最后修改于 336 天前,其中某些信息可能已经过时。

目录

keil编译速度慢与解决方式
测试
结论
解决方法

keil编译速度慢与解决方式

此文档记录下keil编译速度,以及找到的提速方法

注意:本文只讨论keil软件编译速度,并不讨论编译器的速度以及编译器对代码的优化等

众所周知,armcc(ac5)编译器编译较慢是一直被吐槽的点,后面发布的armclang(ac6)基于clang制作,大幅度提升了编译速度,但是感觉ac6的编译速度还是不够快,所以针对这个查了下原因

这里使用了我的一个工程做测试:

测试

环境:

uVision: V5.39.0

armclang: V6.21

-Oz 编译等级+lto+debug模式

keil_c_c++

keil_output

keil_conf

编译消耗时间:

1分钟

keil_build

一分钟的编译时间还是比较长的,毕竟工程代码最大的就是lvgl,并不应该这么长的时间,问题出在哪呢?看了下cpu占用了,编译时候平均只有30%,这不对呀...... 所以大概率问题在于keil本身的构建系统或者多线程处理上,我们更换下构建系统再试一下

这里我们使用xmake构建

环境:

xmake:V2.9.1

armclang: V6.21

-Oz 编译等级+lto+debug模式

编译消耗时间:

13秒

keil_xmake_build

cpu占用可以跑满,这才是正常的编译时间

结论

keil本身的构建系统或者多线程处理上有问题

解决方法

所以大家可以选用其他方式编译,或者直接使用别的IDE

可选的方式有很多,我们简单列举几个说一下优缺点

  • MDK6 优点:基于Visual Sdudio code+插件形式,使用cmake+make/ninja编译,速度很快 缺点:配置相对繁琐,无法开箱即用,依赖vcpkg做包管理,依赖github,国内对科学上网有一定依赖
  • CLion 优点:非常好的一款IDE,非常完善,支持构建+调试,很方便的集成了cmake+make/ninja进行编译 缺点:收费(学生可以申请免费许可,也可以用自己的开源维护项目获取免费许可,JetBrains对开源真的很友好)
  • Visual Sdudio 优点:宇宙第一IDE,同样支持嵌入式编译调试 缺点:虽然支持嵌入式编译调试,但是相对资料偏少
  • 直接手写编译构建 优点:基于xmake/make/ninja/scons/cmake+make/jinja等直接手写构建脚本,完全自己控制流程,更自由,搭配Visual Sdudio code可以做到下载+调试 缺点:配置相对繁琐,无法开箱即用,工作量比上面的大

本文作者:打盹的消防车

本文链接:

版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!