按照官方教程使用 oebuild 编译生成 openEuler 24.03 嵌入式系统时,需要自行添加一些软件库,因此修改了 yocto-meta-openeuler/bsp/meta-hisilicon/recipes-core/images/image-hieulerpi1.inc 文件,在 # all app and tools IMAGE_INSTALL 下添加了 zbar、opencv、nodejs 等软件库。同样方式添加的其他库(如 tiff)均无问题,但这三个库编译失败,请问是什么原因,应如何解决?
编译环境:Ubuntu 22.04 LTS,已尝试 Python 3.8/3.10/3.11,oebuild 版本 v0.1.0.8。
报错如下:
zbar:
[openeuler@wwy work_dir]$ bitbake zbar
Loading cache: 100% |##############################################################################################################################################################################################################################################| Time: 0:00:00
Loaded 4418 entries from dependency cache.
Parsing recipes: 100% |############################################################################################################################################################################################################################################| Time: 0:00:00
Parsing of 2839 .bb files complete (2838 cached, 1 parsed). 4419 targets, 422 skipped, 0 masked, 0 errors.
NOTE: Resolving any missing task queue dependencies
Build Configuration:
BB_VERSION = “2.0.0”
BUILD_SYS = “x86_64-linux”
NATIVELSBSTRING = “openeuler-24.03”
TARGET_SYS = “aarch64-openeuler-linux”
MACHINE = “hieulerpi1”
DISTRO = “openeuler”
DISTRO_VERSION = “latest”
TUNE_FEATURES = “aarch64”
TARGET_FPU = “”
EXTERNAL_TOOLCHAIN = “/usr1/openeuler/gcc/openeuler_gcc_arm64le”
EXTERNAL_TARGET_SYS = “aarch64-openeuler-linux-gnu”
GCC_VERSION = “12.3.1”
meta = “HEAD:7bac1754913ee4eb993ca6727f21316a6bbc6783”
meta-oemeta-python
meta-networking
meta-filesystems = “HEAD:a82d92c8a6525da01524bf8f4a60bf6b35dcbb3d”
meta-openeuler
meta-openeuler-bsp
meta-hisilicon = “master:9a6aead49c524d3d93d9c8e9aae3f143e71a83a6”
meta-multimedia = “HEAD:a82d92c8a6525da01524bf8f4a60bf6b35dcbb3d”
Initialising tasks: 100% |#########################################################################################################################################################################################################################################| Time: 0:00:00
Sstate summary: Wanted 107 Local 0 Mirrors 0 Missed 107 Current 105 (0% match, 49% complete)
NOTE: Executing Tasks
WARNING: python3-setuptools-native-68.0.0-r0 do_patch: Fuzz detected:
Applying patch 0001-conditionally-do-not-fetch-code-by-easy_install.patch
patching file setuptools/command/easy_install.py
Hunk #1 succeeded at 644 with fuzz 1 (offset -4 lines).
The context lines in the patches can be updated with devtool:
devtool modify python3-setuptools-native
devtool finish --force-patch-refresh python3-setuptools-native<layer_path>
请不要忘记审查 devtool 所做的更改!
警告:python3-setuptools-native-68.0.0-r0 do_patch:QA 问题:补丁日志显示补丁无法干净应用。[patch-fuzz]
警告:meson-native-1.1.1-r0 do_patch:检测到模糊匹配:
正在应用补丁 0001-Make-CPU-family-warnings-fatal.patch
patching file mesonbuild/envconfig.py
Hunk #1 在 276 行成功,偏移 -9 行。
patching file mesonbuild/environment.py
Hunk #1 在 340 行成功,模糊度为 2,偏移 -19 行。
可以通过 devtool 更新补丁中的上下文行:
devtool modify meson-native
devtool finish --force-patch-refresh meson-native <layer_path>
请不要忘记审查 devtool 所做的更改!
警告:meson-native-1.1.1-r0 do_patch:QA 问题:补丁日志显示补丁无法干净应用。[patch-fuzz]
警告:systemd-1_253-r0 do_patch:检测到模糊匹配:
正在应用补丁 logind-set-RemoveIPC-to-false-by-default.patch
patching file man/logind.conf.xml
Hunk #1 在 341 行成功,偏移 1 行。
patching file src/login/logind-core.c
Hunk #1 在 34 行成功,偏移 -1 行。
patching file src/login/logind.conf.in
Hunk #1 在 43 行成功,模糊度为 1,偏移 10 行。
可以通过 devtool 更新补丁中的上下文行:
devtool modify systemd
devtool finish --force-patch-refresh systemd <layer_path>
请不要忘记审查 devtool 所做的更改!
警告:systemd-1_253-r0 do_patch:QA 问题:补丁日志显示补丁无法干净应用。[patch-fuzz]
错误:zbar-0.23.1+gitAUTOINC+89e7900d85-r0 do_configure:执行错误(‘/home/openeuler/build/work_dir/tmp/work/aarch64-openeuler-linux/zbar/0.23.1+gitAUTOINC+89e7900d85-r0/temp/run.do_configure.592542’,1,None,None)
错误:失败日志存储在:/home/openeuler/build/work_dir/tmp/work/aarch64-openeuler-linux/zbar/0.23.1+gitAUTOINC+89e7900d85-r0/temp/log.do_configure.592542
日志内容如下:
| 调试:执行 python 函数 extend_recipe_sysroot
| 注意:直接依赖项为 [’ /usr1/openeuler/src/yocto-poky/../yocto-meta-openeuler/meta-openeuler/dynamic-layers/openembedded-layer/recipes-multimedia/v4l2apps/v4l-utils_1.24.1.bb:do_populate_sysroot’, ‘/usr1/openeuler/src/yocto-poky/../yocto-meta-openeuler/meta-openeuler/recipes-external/gcc/gcc-external-cross.bb:do_populate_sysroot’, ‘/usr1/openeuler/src/yocto-poky/../yocto-meta-openeuler/meta-openeuler/recipes-external/gcc/gcc-runtime-external.bb:do_populate_sysroot’, ‘/usr1/openeuler/src/yocto-poky/../yocto-meta-openeuler/meta-openeuler/recipes-external/glibc/glibc-external.bb:do_populate_sysroot’, ‘/usr1/openeuler/src/yocto-poky/meta/recipes-devtools/libtool/libtool-cross_2.4.7.bb:do_populate_sysroot’, ‘/usr1/openeuler/src/yocto-poky/meta/recipes-devtools/python/python3_3.11.5.bb:do_populate_sysroot’, ‘virtual:native:/usr1/openeuler/src/yocto-poky/meta/recipes-devtools/pkgconfig/pkgconfig_git.bb:do_populate_sysroot’, ‘virtual:native:/usr1/openeuler/src/yocto-poky/meta/recipes-devtools/pseudo/pseudo_git.bb:do_populate_sysroot’, ‘virtual:native:/usr1/openeuler/src/yocto-poky/meta/recipes-devtools/python/python3_3.11.5.bb:do_populate_sysroot’, ‘virtual:native:/usr1/openeuler/src/yocto-poky/meta/recipes-devtools/xmlto/xmlto_0.0.28.bb:do_populate_sysroot’]
| 注意:已安装到 sysroot:
| 注意:跳过,因为已存在于 sysroot 中:[‘v4l-utils’, ‘gcc-external-cross-aarch64’, ‘gcc-runtime-external’, ‘glibc-external’, ‘libtool-cross’, ‘python3’, ‘pkgconfig-native’, ‘pseudo-native’, ‘python3-native’, ‘xmlto-native’, ‘libxml2-native’, ‘docbook-xml-dtd4-native’, ‘libxslt-native’, ‘docbook-xsl-stylesheets-native’, ‘alsa-lib’, ‘systemd’, ‘libjpeg-turbo’, ‘sqlite3-native’, ‘ncurses-native’, ‘openssl-native’, ‘util-linux-libuuid-native’, ‘zlib-native’, ‘libgcc-external’, ‘libxcrypt-external’, ‘readline’, ‘zlib’, ‘opkg-utils’, ‘libffi’, ‘libnsl2’, ‘util-linux-libuuid’, ‘gdbm’, ‘sqlite3’, ‘ncurses’, ‘openssl’, ‘libtirpc’, ‘xz’, ‘bzip2’, ‘binutils-external-cross-aarch64’, ‘libpam’, ‘acl’, ‘libcap’, ‘libseccomp’, ‘base-files’, ‘util-linux’, ‘zstd’, ‘shadow’, ‘kmod’, ‘shadow-sysroot’, ‘shadow-native’, ‘bash-completion’, ‘base-passwd’, ‘gettext-minimal-native’, ‘cracklib’, ‘attr’, ‘libcap-ng’]
| 调试:Python 函数 extend_recipe_sysroot 执行完成
| 调试:执行 shell 函数 autotools_preconfigure
| 调试:shell 函数 autotools_preconfigure 执行完成
| 调试:执行 python 函数 autotools_aclocals
| 调试:SITE 文件 [‘endian-little’, ‘bit-64’, ‘arm-common’, ‘arm-64’, ‘common-linux’, ‘common-glibc’, ‘aarch64-linux’, ‘common’]
| 调试:Python 函数 autotools_aclocals 执行完成
| 调试:执行 shell 函数 do_configure
| install: 无法获取 ‘/home/openeuler/build/work_dir/tmp/work/aarch64-openeuler-linux/zbar/0.23.1+gitAUTOINC+89e7900d85-r0/recipe-sysroot-native/usr/share/gettext/ABOUT-NLS’ 的状态:没有那个文件或目录
| 警告:/home/openeuler/build/work_dir/tmp/work/aarch64-openeuler-linux/zbar/0.23.1+gitAUTOINC+89e7900d85-r0/temp/run.do_configure.592542:157 退出码 1,命令为 ‘install -m 755 /home/openeuler/build/work_dir/tmp/work/aarch64-openeuler-linux/zbar/0.23.1+gitAUTOINC+89e7900d85-r0/recipe-sysroot-native/usr/share/gettext/ABOUT-NLS /home/openeuler/build/work_dir/tmp/work/aarch64-openeuler-linux/zbar/0.23.1+gitAUTOINC+89e7900d85-r0/git/’
| 警告:回溯(BB 生成的脚本):
| 表达式无内容:#1: do_configure, /home/openeuler/build/work_dir/tmp/work/aarch64-openeuler-linux/zbar/0.23.1+gitAUTOINC+89e7900d85-r0/temp/run.do_configure.592542, 第 157 行
| #2: main, /home/openeuler/build/work_dir/tmp/work/aarch64-openeuler-linux/zbar/0.23.1+gitAUTOINC+89e7900d85-r0/temp/run.do_configure.592542, 第 301 行
错误:任务(/usr1/openeuler/src/yocto-poky/../yocto-meta-openembedded/meta-oe/recipes-support/zbar/zbar_git.bb:do_configure)失败,退出码为 ‘1’
注意:任务汇总:共尝试 674 个任务,其中 341 个无需重新运行,1 个失败。
汇总:1 个任务失败:/usr1/openeuler/src/yocto-poky/../yocto-meta-openembedded/meta-oe/recipes-support/zbar/zbar_git.bb:do_configure
汇总:共出现 6 条警告信息。
汇总:共出现 1 条错误信息,返回非零退出码。
nodejs:| aarch64-openeuler-linux-gnu-g++: 警告:不支持的选项 ‘-msign-return-address=all’ | {标准输入}: 汇编器消息: | {标准输入}:1960035: 警告:文件末尾不在行末;已插入换行符 | {标准输入}:1960036: 警告:缺少表达式,假定为零 | aarch64-openeuler-linux-gnu-g++: 致命错误:被终止的信号导致程序 cc1plus 停止 | 编译终止。 | make[1]: ** [tools/v8_gypfiles/v8_initializers.host.mk:423: Release/obj.host/v8_initializers/gen/torque-generated/src/builtins/base-tq-csa.o] 错误 1 | make[1]: ** 等待未完成的任务… | rm 97d32ae821fe69ae97059758890dc4697d0da08c.intermediate d70c6c9f72154d3f55fdc1ba395142b554c15e5a.intermediate 05547d40366a29bd7be31143624669ba47663ff4.intermediate c0b0ea7e7db73a18d6fbd3520041e239c5381403.intermediate bd18d7f012a278728a384256957ad75ce0e9a9e7.intermediate | make: ** [Makefile:134: node] 错误 2 | ERROR: oe_runmake 失败 | WARNING: /home/openeuler/build/work_dir/tmp/work/aarch64-openeuler-linux/nodejs/20.11.1-r0/temp/run.do_compile.343580:174 退出码 1,来自 ‘exit 1’ | WARNING: 回溯(BB 生成的脚本):expressionless: #1: bbfatal_log, /home/openeuler/build/work_dir/tmp/work/aarch64-openeuler-linux/nodejs/20.11.1-r0/temp/run.do_compile.343580, 第 174 行 | #2: die, /home/openeuler/build/work_dir/tmp/work/aarch64-openeuler-linux/nodejs/20.11.1-r0/temp/run.do_compile.343580, 第 158 行 | #3: oe_runmake, /home/openeuler/build/work_dir/tmp/work/aarch64-openeuler-linux/nodejs/20.11.1-r0/temp/run.do_compile.343580, 第 153 行 | #4: do_compile, /home/openeuler/build/work_dir/tmp/work/aarch64-openeuler-linux/nodejs/20.11.1-r0/temp/run.do_compile.343580, 第 148 行 | #5: main, /home/openeuler/build/work_dir/tmp/work/aarch64-openeuler-linux/nodejs/20.11.1-r0/temp/run.do_compile.343580, 第 187 行 ERROR: 任务 (/usr1/openeuler/src/yocto-poky/../yocto-meta-openeuler/meta-openeuler/recipes-devtools/nodejs/nodejs_20.11.1.bb:do_compile) 以退出码 ‘1’ 失败 | 注意:任务摘要:共尝试执行 436 个任务,其中 427 个无需重新执行,1 个失败。 | 摘要:1 个任务失败:/usr1/openeuler/src/yocto-poky/../yocto-meta-openeuler/meta-openeuler/recipes-devtools/nodejs/nodejs_20.11.1.bb:do_compile | 摘要:共出现 2 条 ERROR 消息,返回非零退出码。 | [openeuler@wwy work_dir]$ | @jimmy_hero , @zhuchunyi , @small_leek , @AlexZ11 , @caodongxia