今天调试一个东西的时候,需要修改网上下载的源代码,然后这个代码在编译的时候自动解压,手动改解压后的代码,再次编译的时候,又会被覆盖,因此需要在解压完毕后,打个patch上去,然后再编译。在我老大的指导下,快速搞定了这个问题,这里记录一下。
操作流程如下:
1、生成patch
2、将patch放入对应的路径
3、修改对应的bb文件
第一步,生成patch:
一、进入到你的源码位置,有两种情况:
1、源码是从网上下载的,这个时候,你的源码就是在解压后的位置
2、源码是你本地添加的,这个时候,你的源码就是在你本地添加代码的位置
二、修改你的源码
三、执行如下命令,生成patch:
git diff test.c > test.patch
第二步,将patch放入对应的路径:
1、找到你对应的bb文件的路径
2、bb文件一般都有一个对应的代码存放路径
3、将patch文件放入到你的代码存放路径
命令结果如下:
├── test-bin //代码存放的路径
│ ├── CMakeLists.txt
│ ├── lib
│ │ ├── test_lib.c
│ │ ├── test_lib.h
│ ├── test.patch //patch
│ └── src
│ ├── CMakeLists.txt
│ ├── test.c
└── test-bin_0.1.bb //bb文件存放的位置
第三步,修改对应的bb文件:
在bb文件里面添加如下内容;
SRC_URI = "file://test.patch " //如果你已经有这个变量了,请添加对应的内容就行
至此,整个patch的添加就完成了。
注:如果是自己本地的代码,个人觉得打patch的方式不怎么友好,因为别人查看你的代码的时候,如果没有编译,看到的就不是已经打patch的代码,也不利于后续代码的修改。