嵌入式 linux 软件开发的时候,经常会阅读大型工程源码,比如 uboot 源代码,linux kernel 源码等。
所以,选择一个合适的工具来阅读源代码,变为了一个经久不衰的话题。 阅读源码的时候,其实无非也就两个重要的功能:
① 定义或者声明快速跳转
② 快速搜索指定内容
另外还有一些功能是和开发体验相关的,比如:
① 工具的主题(亮色和暗色)
② 工具是否方便修改编辑内容
③ 工具是否还提供其它的方便功能
目前常用的就是 source insight 和 vs code,下面就来按照上述需求进行对比,看看哪个更适合?
创建代码工程
source insight 在阅读工程代码时,可以通过创建 source insight 工程来选择哪些文件加入,哪些文件不加入。
对于 uboot 这种包含有大量板级文件夹的工程,加入之后其中的文件只和目前移植的这款处理器有关,这个功能是非常有优势的,也是众多工程师喜爱 source insight 的原因。
相比之下,vs code并不提供这种选择加入的功能,vs code 非常粗暴,文件夹就是工作区,只需要打开源码文件夹,所有文件全部加入:
相比之下,我觉得 source insight 胜出,vs code 这种将所有文件一股脑全部加入的方式,在查找文件时非常麻烦。
文件架构
在 source insight 中,打开一个文件的时候,会列出当前文件中所有预处理、宏定义、变量、函数的架构,如图:
在 vs code 中打开文件时也有同样的功能,但又是一股脑的按照顺序将所有函数声明和定义列出,实际查看时也没有什么太多作用:
在文件整体架构方面,source insight 胜出,vs code 对于代码架构方面的显示,还需要再优化。
定义跳转功能
在 source insight 中,可以右键跳转函数声明或者直接按住 ctrl 点击函数名称,如果定义有重复会先提示,供你选择,如图:
在 vscode 中,首先需要安装 c/c++扩展,然后才支持定义跳转,可以按住 ctrl 键点击或者右键跳转:
如果有重复也会出现提示,选择需要查看哪个定义。 在定义跳转功能上,两者持平,功能基本都够用。
全局搜索指定内容
在 source insight 中,提供的搜索功能如下:
在 vs code 中也提供了全局搜索的功能,但是由于它将所有文件都包含进来了,无用的搜索结果比较多:
所以,在搜索功能上,由于 source insight 先天性的优势,本轮胜出。
主题设置
阅读源码需要很长时间,所以提供一个舒服的主题也是很重要的。 source insight 提供的主题有:
vscode 提供的主题就非常棒了:
source insight 提供的这些主题我觉得还行,但换出来感觉效果都比较怪,没有那么舒服,相比之下 vs code 的主题做的就比较好,无论亮色还是暗色看着都很舒服,对于我个人而言,本轮 vs code 胜出。
其他功能
source 除了我上述说的主要功能之外,还有非常多的功能,但我都没怎么用过。 此处,我必须要说一下 vs code,因为 uboot 源码需要在 linux 上编译,但是我日常使用的系统是 windows,所以我一般将 vscode 安装在 windows 上,使用 vs code 提供的远程 ssh 功能,去连接远程 linux 主机,它会将远程主机上的目录直接作为工作区,另外还提供了集成终端,修改后直接在终端中编译即可,如图:
另外,vscode 内部集成了 git 可视化功能,可以方便的使用 git 管理代码。 相比之外,source insight 在修改文件之后,还需要把修改的文件上传到 linux 服务器去编译,过程有点繁琐。 所以,在额外功能的扩展性上,我觉得 vscode 胜出。
总结
经过上述比较,我来说说我的体验和看法:source insight 就像是一个老大哥,基本功很扎实,比如源码查看,文件架构列表这些,很方便实用,在阅读代码的时候非常方便,但在开发时相对不太方便。对于它的文件选择加入功能,其实我是不太喜欢的,这么庞大的源码工程,既然我知道哪些文件有用,哪些文件没用,那我还看啥呢?所以对初学者不太友好。而 vs code 呢,就是一个年轻小伙,后起之秀,比如主题随便换,可以远程连接 linux 主机进行开发,git 可视化扩展等等,各种炫酷功能,但是基本功太不扎实,在阅读源码时的基础功能没做好,但是在开发时非常顺手。
紫光展锐T765处理器上线:双卡双5G,支持108MP高清拍照
pcb走线的基本规则是怎样的
实现超高功效的新一代非对称型Doherty放大器QPD2731
Windows上有一个存在了将近一年的Bug
倍加福RFID“武装”,全速推进工业4.0的进程
嵌入式Linux软件开发:两款阅读源代码的工具对比
国家政策扶持芯片制造 2025年将自研芯片提高到70%
新火种AI | 特斯拉,比亚迪纷纷入局!新的万亿市场正在被撬动
测试设备和专门设计的负载电路之间的比较
如何选择电感 电感感值是不是越大越好?
分布式存储与传统数据存储方式有什么区别
目前智慧城市的规划已经步入了理性化的发展阶段
dfrobotTurtle 3PA三轮小车机器人套件简介
tcp连接断链分析
RS232串行数据截取器的设计方案
零跑T03信息曝光 L2级辅助驾驶功能满足了年轻消费者的需求
小米6逆天配置,满血版骁龙835,4月16号正式发布
刘昊然实力带货,其代言新品vivo S6获年轻人喜爱
人工智能时代的到来,搜索引擎将会是什么样子呢?
一起来看看RDMA让网络实现低时延的绝招