警告:本文章是给 arm64 linux 准备的。
安装依赖
直接从 lineageOS 依赖抄一份就行了。
除此之外还要安装以下东西:
- bison
- pkg-config
- libyaml-dev
下载源码
1 | wget https://android.googlesource.com/platform/external/dtc/archive/refs/heads/android11-release.tar.gz -o dtc.tar.gz |
如果要下载其他版本就把 android11 改成 android[版本号] 就行。最低为 android10.
解压
1 | tar -xzf dtc.tar.gz |
编译
然后直接编译即可。编译后会生成 dtc 文件。
1 | make dtc -j8 |
debug
这里阐述下遇到的问题:
make: *** 没有规则可制作目标“dtc-parser.h”,由“dtc-lexer.lex.o” 需求。 停止。
1 | BISON dtc-parser.tab.c |
解决方法: 手动执行
1 | bison -d dtc-parser.y -o dtc-parser.h |
然后有可能遇到以下错误:
1 | DEP dtc-parser.tab.c |
解决办法: 删掉 dtc-parser.tab.c 第1086行。
曾经也试过将 YYLTYPE yylloc
改成 extern YYLTYPE yylloc
,但是会出现以下问题:
1 | DEP dtc-parser.tab.c |
-------------本文结束感谢您的阅读-------------