警告:本文章是给 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  | 
-------------本文结束感谢您的阅读-------------