Keil 编译太慢怎么办?教你一招,提速10倍
点击上方“小麦大叔”,选择“置顶/星标公众号”
福利干货,第一时间送达
大家好,我是小麦,最近我在进行一个项目的开发,用的IDE是Keil mdk,由于代码量逐渐增加,发现编译的速度越来越慢。
构建项目
这个项目基于STM32F407,在此基础上还添加了FreeRTOS
和LWIP TCP/IP
协议栈,所以整体的代码量就被协议栈和RTOS弄得很大,每次构建项目或者重新构建项目的时候,都要花很长的时间,如下图所示;
可以看到,在这里我用了3分钟。这个时间太长了,会大大影响我的开发效率,所以后面尝试了几个方法,提高构建的速度。
解决方案
首先我找到一个解决办法就是在构建过程中防止生成 Browse Information
文件。
想要在项目配置中将这个选项勾选去掉即可,最终实践发现,项目构建时间缩短到 24秒 ,整体还可以接受。
优化后的时间主要原因其实是构建的时候,避免生成 .CRF
文件,生成这个文件的主要作用就是我们在进行代码编辑的时候,宏定义,函数原型,函数声明可以进行跳转。
官方文档中的解释:
Cross-Reference file containing browse information (definitions, references for identifiers).
如果选择不生成这个文件,代价就是牺牲了我们写代码的效率。
因为我们写代码的时候,会频繁地进行函数原型和函数声明直接的跳转,有时候要跳转到宏定义,如果无法进行跳转,使用Keil MDK只能使用全文搜索来替代,因此一定程度上会降低效率。
进行跳转当我们尝试跳转到函数声明时,最终提示如下:
错误提示这时候,我喜欢配合其他编辑器,比如source insight
,vs code
,代码编辑的工作放在其他体验更好的软件中进行,然后代码的构建和调试又重新回到keil mdk
,发挥各自的优势。
之前写过一篇使用EIDE的插件,在vs code
中导入keil mdk
的项目进行开发,在vs code
中调用arm cc
进行项目的构建。
整体的构建时间为 30秒 ,可以接受,然后还能充分发挥vs code
在代码编辑上的优势,感兴趣的可以试一下。
总结
今天的介绍的挺简单,主要是在keil mdk
下开发,构建项目时会产生.CRF
文件,从而使构建速度大大降低,从而影响开发效率。
具体的解决办法是避免生成.CRF
文件,但是会影响整体函数原型和声明以及宏定义的跳转,可以通过全文搜索,或者借助其他编辑器作为辅助手段来解决。
—— The End ——
推荐好文 点击蓝色字体即可跳转
欢迎转发、留言、点赞、分享给你的朋友,感谢您的支持!
点击上方名片关注公众号
分享 💬 点赞 👍 在看 ❤️
以“三连”行动支持优质内容!
文章来源: great.blog.csdn.net,作者:小麦大叔,版权归原作者所有,如需转载,请联系作者。
原文链接:great.blog.csdn.net/article/details/120520910
- 点赞
- 收藏
- 关注作者
评论(0)