yocto 下用 devtool 对源码修改
笔者在使用yocto从源码编译tisdk时碰到gstreamer和gst-plugins编译错误:
| controller-enumtypes.c:6:1: error: stray ‘\’ in program
| \#include "gstinterpolationcontrolsource.h"
从打开的源码看是自动生成的文件里#include 前多了一个反斜杠。
上网一搜,知道是make版本升级后的问题,现在是4.3。
怪不得之前编译uboot好好的,后来也出现一个\#include问题。
之前直接在work目录下对源文件一个一个改(删去\),今天重新编译另一个系统时,修改丢了。
但是又不想一个一个再去改了,得加个补丁了,否则以后重新编译又过不去。
上网搜到devtool是个好东西。
建立环境
/yocto/tisdk/build$ devtool modify gstreamer1.0
会生成工作目录在
/yocto/tisdk/build/workspace/sources/gstreamer1.0$
在此处对源码(配置文件,脚本)修改,具体修改见后面patch。
可以一边修改,一边bitbake gstreamer1.0验证
修改后git commit, 消息将会是后面生成的patch名字
生成补丁和bbappend文件
/yocto/tisdk/build$ devtool update-recipe -a /media/disk2T/yocto/tisdk/meta-xxxx(你自己的layer) gstreamer1.0
/yocto/tisdk/meta-xxxx/recipes-multimedia/gstreamer$ tree
.
├── gstreamer1.0
│ └── 0001-fix-make-version-upgrade-include-issue.patch
└── gstreamer1.0_1.14.4.bbappend
https://files.cnblogs.com/files/myfish3/0001-fix-make-version-upgrade-include-issue.patch.gz
devtool reset gstreamer1.0
最后再去试试bitbake gstreamer1.0,这下没问题了。