Gcc 对于yocto build的几个.bb文件,是否编译错误

Gcc 对于yocto build的几个.bb文件,是否编译错误,gcc,cross-compiling,yocto,bitbake,Gcc,Cross Compiling,Yocto,Bitbake,即使在从零开始获取所有依赖项和构建目录之后,我仍然发现Yocto build的几个.bb文件存在do_编译错误 ERROR: oe_runmake failed ERROR: Function failed: do_compile (log file is located at /home/fsl-community-bsp-jethro1/build/tmp/work/imx6q-poky- linux-gnueabi/linux-fslc-imx/3.14-1.1.x+gitAUTOIN

即使在从零开始获取所有依赖项和构建目录之后,我仍然发现Yocto build的几个.bb文件存在do_编译错误

ERROR: oe_runmake failed
ERROR: Function failed: do_compile (log file is located at 
/home/fsl-community-bsp-jethro1/build/tmp/work/imx6q-poky- 
linux-gnueabi/linux-fslc-imx/3.14-1.1.x+gitAUTOINC+327d5c9063- 
r0/temp/log.do_compile.14224)

ERROR: Logfile of failure stored in: /home/fsl-community-bsp- 
jethro1/build/tmp/work/imx6q-poky-linux-gnueabi/linux-fslc- 
imx/3.14-1.1.x+gitAUTOINC+327d5c9063-r0/temp/log.do_compile.14224
整个日志消息的内容如下:

Log data follows:
| DEBUG: Executing shell function do_compile
| NOTE: make -j 4 uImage CC=arm-poky-linux-gnueabi-gcc  -mno-thumb- 
interwork -marm -fuse-ld=bfd LD=arm-poky-linux-gnueabi-ld.bfd   
LOADADDR=0x10008000
|   CHK     include/config/kernel.release
|   GEN     /home/fsl-community-bsp- 
jethro1/build/tmp/work/imx6q-poky-linux-gnueabi/linux-fslc-imx/3.14- 
1.1.x+gitAUTOINC+327d5c9063-r0/build/Makefile
|   CHK     include/generated/uapi/linux/version.h
|   Using /home/fsl-community-bsp-jethro1/build/tmp/work- 
shared/imx6qmyproject/kernel-source as source for kernel
|   CHK     include/generated/utsrelease.h
| make[3]: `include/generated/mach-types.h' is up to date.
|   CC      scripts/mod/empty.o
|   CC      scripts/mod/devicetable-offsets.s
|   MKELF   scripts/mod/elfconfig.h
|   HOSTCC  scripts/mod/modpost.o
|   HOSTCC  scripts/mod/sumversion.o
|   CALL    /home/fsl-community-bsp-jethro1/build/tmp/work- 
shared/imx6qmyproject/kernel-source/scripts/checksyscalls.sh
|   GEN     scripts/mod/devicetable-offsets.h
|   HOSTCC  scripts/mod/file2alias.o
|   HOSTLD  scripts/mod/modpost
|   CHK     include/generated/compile.h
|   CHK     kernel/config_data.h
|   Kernel: arch/arm/boot/Image is ready
|   Kernel: arch/arm/boot/zImage is ready
|   Image arch/arm/boot/uImage is ready
| NOTE: make -j 4 imx6q-myproject-ldo.dtb
|   CC      scripts/mod/empty.o
|   CC      scripts/mod/devicetable-offsets.s
|   MKELF   scripts/mod/elfconfig.h
|   GEN     scripts/mod/devicetable-offsets.h
|   HOSTCC  scripts/mod/modpost.o
|   HOSTCC  scripts/mod/sumversion.o
|   HOSTCC  scripts/mod/file2alias.o
|   HOSTLD  scripts/mod/modpost
| ERROR: Function failed: do_compile (log file is located at 
/home/fsl-community-bsp-jethro1/build/tmp/work/imx6q-poky-linux- 
gnueabi/linux-fslc-imx/3.14-1.1.x+gitAUTOINC+327d5c9063- 
r0/temp/log.do_compile.14224)
ERROR: Task 47 (/home/fsl-community-bsp-jethro1/sources/meta-fsl- 
arm/recipes-kernel/linux/linux-fslc-imx_3.14-1.1.x.bb, do_compile) 
failed with exit code '1'
解析某些路径后的最终生成错误为:

| make[3]: *** No rule to make target `arch/arm/boot/dts/imx6q- 
myproject-ldo.dtb'.  Stop.
| make[2]: *** [imx6q-myproject-ldo.dtb] Error 2
| make[1]: *** [sub-make] Error 2
| make: *** [all] Error 2
| ERROR: oe_runmake failed
poky中的do_compile函数如下所示:

Log data follows:
| DEBUG: Executing shell function do_compile
| NOTE: make -j 4 uImage CC=arm-poky-linux-gnueabi-gcc  -mno-thumb- 
interwork -marm -fuse-ld=bfd LD=arm-poky-linux-gnueabi-ld.bfd   
LOADADDR=0x10008000
|   CHK     include/config/kernel.release
|   GEN     /home/fsl-community-bsp- 
jethro1/build/tmp/work/imx6q-poky-linux-gnueabi/linux-fslc-imx/3.14- 
1.1.x+gitAUTOINC+327d5c9063-r0/build/Makefile
|   CHK     include/generated/uapi/linux/version.h
|   Using /home/fsl-community-bsp-jethro1/build/tmp/work- 
shared/imx6qmyproject/kernel-source as source for kernel
|   CHK     include/generated/utsrelease.h
| make[3]: `include/generated/mach-types.h' is up to date.
|   CC      scripts/mod/empty.o
|   CC      scripts/mod/devicetable-offsets.s
|   MKELF   scripts/mod/elfconfig.h
|   HOSTCC  scripts/mod/modpost.o
|   HOSTCC  scripts/mod/sumversion.o
|   CALL    /home/fsl-community-bsp-jethro1/build/tmp/work- 
shared/imx6qmyproject/kernel-source/scripts/checksyscalls.sh
|   GEN     scripts/mod/devicetable-offsets.h
|   HOSTCC  scripts/mod/file2alias.o
|   HOSTLD  scripts/mod/modpost
|   CHK     include/generated/compile.h
|   CHK     kernel/config_data.h
|   Kernel: arch/arm/boot/Image is ready
|   Kernel: arch/arm/boot/zImage is ready
|   Image arch/arm/boot/uImage is ready
| NOTE: make -j 4 imx6q-myproject-ldo.dtb
|   CC      scripts/mod/empty.o
|   CC      scripts/mod/devicetable-offsets.s
|   MKELF   scripts/mod/elfconfig.h
|   GEN     scripts/mod/devicetable-offsets.h
|   HOSTCC  scripts/mod/modpost.o
|   HOSTCC  scripts/mod/sumversion.o
|   HOSTCC  scripts/mod/file2alias.o
|   HOSTLD  scripts/mod/modpost
| ERROR: Function failed: do_compile (log file is located at 
/home/fsl-community-bsp-jethro1/build/tmp/work/imx6q-poky-linux- 
gnueabi/linux-fslc-imx/3.14-1.1.x+gitAUTOINC+327d5c9063- 
r0/temp/log.do_compile.14224)
ERROR: Task 47 (/home/fsl-community-bsp-jethro1/sources/meta-fsl- 
arm/recipes-kernel/linux/linux-fslc-imx_3.14-1.1.x.bb, do_compile) 
failed with exit code '1'
最后一个Bitbake任务错误如下所示:

Log data follows:
| DEBUG: Executing shell function do_compile
| NOTE: make -j 4 uImage CC=arm-poky-linux-gnueabi-gcc  -mno-thumb- 
interwork -marm -fuse-ld=bfd LD=arm-poky-linux-gnueabi-ld.bfd   
LOADADDR=0x10008000
|   CHK     include/config/kernel.release
|   GEN     /home/fsl-community-bsp- 
jethro1/build/tmp/work/imx6q-poky-linux-gnueabi/linux-fslc-imx/3.14- 
1.1.x+gitAUTOINC+327d5c9063-r0/build/Makefile
|   CHK     include/generated/uapi/linux/version.h
|   Using /home/fsl-community-bsp-jethro1/build/tmp/work- 
shared/imx6qmyproject/kernel-source as source for kernel
|   CHK     include/generated/utsrelease.h
| make[3]: `include/generated/mach-types.h' is up to date.
|   CC      scripts/mod/empty.o
|   CC      scripts/mod/devicetable-offsets.s
|   MKELF   scripts/mod/elfconfig.h
|   HOSTCC  scripts/mod/modpost.o
|   HOSTCC  scripts/mod/sumversion.o
|   CALL    /home/fsl-community-bsp-jethro1/build/tmp/work- 
shared/imx6qmyproject/kernel-source/scripts/checksyscalls.sh
|   GEN     scripts/mod/devicetable-offsets.h
|   HOSTCC  scripts/mod/file2alias.o
|   HOSTLD  scripts/mod/modpost
|   CHK     include/generated/compile.h
|   CHK     kernel/config_data.h
|   Kernel: arch/arm/boot/Image is ready
|   Kernel: arch/arm/boot/zImage is ready
|   Image arch/arm/boot/uImage is ready
| NOTE: make -j 4 imx6q-myproject-ldo.dtb
|   CC      scripts/mod/empty.o
|   CC      scripts/mod/devicetable-offsets.s
|   MKELF   scripts/mod/elfconfig.h
|   GEN     scripts/mod/devicetable-offsets.h
|   HOSTCC  scripts/mod/modpost.o
|   HOSTCC  scripts/mod/sumversion.o
|   HOSTCC  scripts/mod/file2alias.o
|   HOSTLD  scripts/mod/modpost
| ERROR: Function failed: do_compile (log file is located at 
/home/fsl-community-bsp-jethro1/build/tmp/work/imx6q-poky-linux- 
gnueabi/linux-fslc-imx/3.14-1.1.x+gitAUTOINC+327d5c9063- 
r0/temp/log.do_compile.14224)
ERROR: Task 47 (/home/fsl-community-bsp-jethro1/sources/meta-fsl- 
arm/recipes-kernel/linux/linux-fslc-imx_3.14-1.1.x.bb, do_compile) 
failed with exit code '1'

现在我的猜测是,交叉编译器没有被正确提及,或者它的路径没有被识别。或者可能是设备树文件的问题,其中.bfd文件和.dtb文件未编译以提供为iMX6 ARM处理器构建的Linux操作系统中的最终dts文件夹?

,如上面PO的评论所述:


当我为dtb文件提供正确的路径并正确使用make命令时,问题得到了解决

更新:


问题不在于路径,而在于设备树编译器识别dts并将其转换为dtb所需的c预处理器

我没有使用make命令,而是使用了dtc命令


您是否已仔细检查是否已将dtb规则正确添加到正确的内核生成文件中?当我为dtb文件提供正确的路径并正确使用make命令时,问题得到了解决。问题不在于路径,而在于设备树编译器识别dts并将其转换为dtb所需的c预处理器。我没有使用make命令,而是使用了dtc命令。