解决linux kernel代码过大,source insight同步时间太长,垃圾文件过多的问题

解决linux kernel代码过大,source insight同步时间太长,垃圾文件过多的问题

我们做linux开发都会使用神器sourceinsight,单就我而言,不用它,我就看不懂代码。若是单片机代码,使用source insight也许不会有什么烦恼。但linux kernel开发使用source insight看代码就会发现

1、添加一个source insight工程是多么的痛苦,建立一个工程是非常巨大的,关联所有变量的时间是消耗不起的,短则1 - 2小时,长则4 5个小时。至少对于我来说非常难受,而且有时候抽风一下变量没有关联上,又得重新同步一下。这之间将会花掉非常多的时间。

2、跳转变量定义可能会显示几十个地方,也很难轻易快捷的选中真实定义。

这篇文章就是为了解决上述问题而做的一个记录,希望可以帮助到大家。

最后效果: 过滤kernel或uboot中所有没有被编译到的文件,减少工程文件树。精确添加所有编译所用到的文件

在此膜拜git大佬tonyho,提供的脚本。

使用流程

这里我用sourceinsight4.0,其实版本什么的无所谓啦。

  1. 去git大佬tonyho仓库中下载PF_Prj_Gen.sh脚本,仓库地址:https://github.com/tonyho/Generate_Kernel_Uboot_Project_forIDE
    在这里插入图片描述
    下载得到PF_Prj_Gen.sh脚本。随便放个地方吧。

  2. 首先一定要编译一下kernel源码,如果是建立uboot,那么就编译uboot源码。保证编译通过。

  3. 然后命令行执行PF_Prj_Gen.sh脚本,命令:./PF_Prj_Gen.sh android8.0_imx6/vendor/nxp-opensource/kernel_imx/ ./outfile, 结果如下:在这里插入图片描述
    可以看到,我的工程中kernel编译过程中依赖的文件为2496+3440+3441个。若是用别的方式添加,可能会添加多达几十万个文件。
    赋予PF_Prj_Gen.sh可执行权限。PF_Prj_Gen.sh脚本参数为PF_Prj_Gen.sh param1 param2, 其中 param1为kernel或者uboot源码主目录,param2为执行PF_Prj_Gen.sh后生成文件所存放的目录,param2必须不存在。

  4. 进入outfile文件中找到FileList_SourceInsight.txt文件,这个就是我们所要的。
    在这里插入图片描述

  5. 接下来建立sourceinsight工程,到添加文件时选择add from list。然后选择FileList_SourceInsight.txt文件。等添加完文件点Close完成文件添加。
    在这里插入图片描述
    6.最后rebuild工程。Project->rebuilt project,然后就可以使用啦。简直清爽!!!

问题补充

  1. SourceInsight工程应该建立在kernel根目录下,因为通过脚本生成的list是相对路径而不是绝对路径。
文章知识点与官方知识档案匹配,可进一步学习相关知识
CS入门技能树Linux入门初识Linux 33358 人正在系统学习中
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值