我试图将dtsi文件编译成dtb,我卡住了。我试过了
第一个月
但它给了我一个语法错误#include <dt-bindings/input/input.h>
个
我试着把这行改成\include\ "dt-bindings/input/input.h"
个
但它给了我一个文件未找到错误“input.h”.
根据这一答复:https://stackoverflow.com/a/42839737/6431843
使用make
而不是dtc
可以解决这样的问题。不幸的是,似乎无论我在make
后面放什么,它总是告诉我there is no rule to make that target
。根据我看到的许多其他帖子,我应该,至少,能够做make dtbs
,它应该工作,但它没有。
1条答案
按热度按时间gxwragnw1#
要解决此问题,您有两个选择:
1.要快速修复,只需运行
make ARCH=<arch> CROSS_COMPILE=<cross_compiler_of_your_choice>- dtbs
即可。举例来说:
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabi- dtbs
个1.可以使用
export ARCH=<arch> && export CROSS_COMPILE=arm-linux-gnueabi-
将ARCH
和CROSS_COMPILE
定义为环境变量这两种方法都有缺点,所以选择你的毒药:
1.当你运行任何
make
命令时,很容易忘记传递这些变量,导致你的构建和配置被搞砸,不能正常运行,正如你所注意到的那样。1.这只在当前shell或终端中起作用,这意味着你应该在每次打开新shell时运行这些命令。一种解决方法是编辑shell配置。
编辑:确保在运行
make
时检查是否需要设置其他变量,但设置上述两个变量就足够了。