树莓派2(DietPi系统)启动libcamera遇未定义符号错误求助
解决libcamera-vid符号查找错误问题
问题概况
在树莓派2(DietPi系统)执行libcamera推流命令:
libcamera-vid -t 0 --width 1920 --height 1080 --codec h264 --inline --listen -o tcp://0.0.0.0:8888
触发符号查找错误:
libcamera-vid: symbol lookup error: /lib/arm-linux-gnueabihf/libcamera_app.so: undefined symbol: _ZNK9libcamera11ControlList8containsERKNS_9ControlIdE
相机硬件可正常工作,已多次重装libcamera相关组件,安装流程参考官方指南。
可行解决步骤
- 校验版本兼容性:树莓派2基于ARMv7架构,需确保安装的libcamera及依赖是针对ARMv7编译的,避免误装ARMv8(树莓派3/4+)版本。DietPi软件源可能存在架构混装情况,需手动指定ARMv7版本重新安装。
- 彻底清理后源码编译:
- 完全卸载现有libcamera相关包:
sudo apt purge libcamera* libcamera-apps* sudo apt autoremove --purge sudo rm -rf /usr/local/lib/libcamera* /usr/local/bin/libcamera-* - 编译适配ARMv7的libcamera:
sudo apt install build-essential meson ninja-build pkg-config libyaml-dev libssl-dev libboost-dev libgstreamer1.0-dev libgstreamer-plugins-base1.0-dev git clone https://git.libcamera.org/libcamera/libcamera.git cd libcamera meson setup build -Dpipelines=rpi/vc4 -Dipas=rpi/vc4 -Dv4l2=true -Dgstreamer=enabled -Dtest=false ninja -C build sudo ninja -C build install - 编译libcamera-apps:
git clone https://github.com/raspberrypi/libcamera-apps.git cd libcamera-apps meson setup build ninja -C build sudo ninja -C build install
- 完全卸载现有libcamera相关包:
- 调整库加载优先级:用
ldd /usr/local/bin/libcamera-vid查看依赖路径,确认本地编译的库(/usr/local/lib)优先加载。临时设置环境变量测试:
若测试有效,可将该变量添加到export LD_LIBRARY_PATH=/usr/local/lib:$LD_LIBRARY_PATH~/.bashrc或/etc/profile中持久化。 - 更新DietPi系统:确保系统处于最新状态,避免因系统库版本过低引发兼容问题:
sudo dietpi-update
内容的提问来源于stack exchange,提问作者PlayerWet
相关产品推荐
相关产品推荐

