RK3576编译buildroot编译到python3报错

说明

报错如下:

rockchip_rk3576/host/lib -Wl,--enable-new-dtags build/temp.linux-x86_64-3.11/home/yangx/linux2/yangx/RK3576/EMS-RK3576-stan-rkr6.2/buildroot/output/rockchip_rk3576/build/host-python3-3.11.8/Modules/_ctypes/_ctypes.o build/temp.linux-x86_64-3.11/home/yangx/linux2/yangx/RK3576/EMS-RK3576-stan-rkr6.2/buildroot/output/rockchip_rk3576/build/host-python3-3.11.8/Modules/_ctypes/callbacks.o build/temp.linux-x86_64-3.11/home/yangx/linux2/yangx/RK3576/EMS-RK3576-stan-rkr6.2/buildroot/output/rockchip_rk3576/build/host-python3-3.11.8/Modules/_ctypes/callproc.o build/temp.linux-x86_64-3.11/home/yangx/linux2/yangx/RK3576/EMS-RK3576-stan-rkr6.2/buildroot/output/rockchip_rk3576/build/host-python3-3.11.8/Modules/_ctypes/cfield.o build/temp.linux-x86_64-3.11/home/yangx/linux2/yangx/RK3576/EMS-RK3576-stan-rkr6.2/buildroot/output/rockchip_rk3576/build/host-python3-3.11.8/Modules/_ctypes/stgdict.o -L. -L/home/yangx/linux2/yangx/RK3576/EMS-RK3576-stan-rkr6.2/buildroot/output/rockchip_rk3576/host/lib -L/usr/lib/x86_64-linux-gnu -L/usr/local/lib -lffi -ldl -o build/lib.linux-x86_64-3.11/_ctypes.cpython-311-x86_64-linux-gnu.so
2025-12-15T10:15:15
2025-12-15T10:15:15 The necessary bits to build these optional modules were not found:
2025-12-15T10:15:15 _bz2                 _gdbm                _tkinter
2025-12-15T10:15:15 To find the necessary bits, look in setup.py in detect_modules() for the module's name.
2025-12-15T10:15:15
2025-12-15T10:15:15
2025-12-15T10:15:15 The following modules found by detect_modules() in setup.py have not
2025-12-15T10:15:15 been built, they are *disabled* by configure:
2025-12-15T10:15:15 _ctypes_test         _sqlite3             _testbuffer
2025-12-15T10:15:15 _testcapi            _testclinic          _testimportmultiple
2025-12-15T10:15:15 _testinternalcapi    _testmultiphase      _xxtestfuzz
2025-12-15T10:15:15
2025-12-15T10:15:15
2025-12-15T10:15:15 Failed to build these modules:
2025-12-15T10:15:15 readline
2025-12-15T10:15:15
2025-12-15T10:15:15 make[2]: *** [Makefile:868: sharedmods] Error 1
2025-12-15T10:15:15 make[1]: *** [package/pkg-generic.mk:303: /home/yangx/linux2/yangx/RK3576/EMS-RK3576-stan-rkr6.2/buildroot/output/rockchip_rk3576/build/host-python3-3.11.8/.stamp_built] Error 2
2025-12-15T10:15:15 make: *** [Makefile:112: _all] Error 2
2025-12-15T10:15:15 make: Leaving directory '/home/yangx/linux2/yangx/RK3576/EMS-RK3576-stan-rkr6.2/buildroot'
Please check details in /home/yangx/linux2/yangx/RK3576/EMS-RK3576-stan-rkr6.2/output/sessions/2025-12-15_10-01-39/br-rockchip_rk3576_2025-12-15_10-01-45.log
ERROR: Running /home/yangx/linux2/yangx/RK3576/EMS-RK3576-stan-rkr6.2/device/rockchip/common/build-hooks/30-rootfs.sh - build_buildroot failed!
ERROR: exit code 1 from line 16:
    "$RK_SCRIPTS_DIR/mk-buildroot.sh" $RK_BUILDROOT_CFG "$IMAGE_DIR"
ERROR: call stack:
    30-rootfs.sh: build_buildroot(16)
    30-rootfs.sh: build_hook(374)
    build-helper: try_func(63)
    build-helper: try_hook(96)
    build-helper: source(165)
    30-rootfs.sh: main(424)
ERROR: Running /home/yangx/linux2/yangx/RK3576/EMS-RK3576-stan-rkr6.2/device/rockchip/common/build-hooks/30-rootfs.sh - try_func build_hook buildroot failed!
ERROR: exit code 1 from line 67:
    build_hook
ERROR: call stack:
    build-helper: try_func(67)
    build-helper: try_hook(96)
    build-helper: source(165)
    30-rootfs.sh: main(424)
ERROR: Running ./build.sh - do_run_hooks build buildroot failed!
ERROR: exit code 1 from line 323:
    /home/yangx/linux2/yangx/RK3576/EMS-RK3576-stan-rkr6.2/device/rockchip/common/build-hooks/30-rootfs.sh build buildroot
ERROR: call stack:
    build.sh: do_run_hooks(323)
    build.sh: run_hooks(340)
    build.sh: run_build_hooks(359)
    build.sh: main(778)
    build.sh: main(789)
ERROR: Running ./build.sh - run_build_hooks build buildroot failed!
ERROR: exit code 1 from line 362:
    build
ERROR: call stack:
    build.sh: run_build_hooks(362)
    build.sh: main(778)
    build.sh: main(789)

分析

一般是缺少库的安装,日志有个关键是 readline 。

检查readline库的安装完整性:

# 检查 readline 库(核心!)
ls -l /usr/lib/x86_64-linux-gnu/libreadline.so*  # 应显示 .so 文件
ls -l /usr/include/readline/readline.h          # 应包含头文件

发现少了 readline.h 头文件。

解决

重新安装:

# 强制重新安装(覆盖可能缺失的文件)
sudo apt-get install --reinstall libreadline-dev
posted @ 2025-12-15 10:32  杨旭0324  阅读(18)  评论(0)    收藏  举报