迁移C++硬件驱动代码至另一树莓派后make编译失败求助
问题诊断与解决:libwiringPi.so 缺失导致编译/运行失败
问题核心
报错的根本原因是目标树莓派未安装WiringPi库,或库文件的路径未被系统正确识别。你的驱动代码依赖WiringPi实现GPIO通信,迁移时仅复制了代码文件,未同步安装依赖的库组件。
解决步骤
安装WiringPi库
- 先更新系统包索引:
sudo apt update - 优先通过包管理器安装:
sudo apt install wiringpi - 若apt安装失败(如新版树莓派不兼容源中旧版本),则从源码编译安装:
git clone https://github.com/WiringPi/WiringPi.git cd WiringPi ./build
- 先更新系统包索引:
验证安装有效性
- 执行
gpio -v,若能输出WiringPi版本信息,说明安装成功。 - 检查库文件是否存在:
ls /usr/lib/libwiringPi.so || ls /usr/local/lib/libwiringPi.so
- 执行
确保系统识别库路径
若库安装在/usr/local/lib这类非默认搜索路径,需配置系统加载路径:- 临时生效(仅当前会话):
export LD_LIBRARY_PATH=/usr/local/lib:$LD_LIBRARY_PATH - 永久生效(重启后仍有效):
echo "/usr/local/lib" | sudo tee -a /etc/ld.so.conf sudo ldconfig
- 临时生效(仅当前会话):
重新编译代码
回到代码目录,清理旧编译产物后重新编译:make clean make
内容的提问来源于stack exchange,提问作者Janzaib M Baloch
相关产品推荐
相关产品推荐

