筆者在使用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,這下沒問題了。