在BeagleBone Black(Debian 10)安装Adafruit_BBIO库失败求助
解决BeagleBone Black(Debian 10 Buster)安装Adafruit_BBIO时"Failed building wheel for Adafruit-BBIO"错误
你遇到的是Adafruit_BBIO旧版本与Debian 10中更严格的GCC编译规则冲突的问题——具体是因为编译选项里的-Werror把函数指针类型转换的警告直接当成了错误,导致编译失败。下面是几个可行的解决办法:
方法1:安装GitHub上的最新修复版本
官方已经在GitHub仓库里修复了这个编译问题,直接克隆源码安装即可:
- 先安装必要依赖:
sudo apt-get update && sudo apt-get install -y git build-essential python-dev python-pip - 克隆仓库并完成安装:
git clone https://github.com/adafruit/Adafruit_BBIO.git cd Adafruit_BBIO sudo python setup.py install
方法2:修改旧版本源码的编译选项
如果你一定要用1.1.1版本,可以手动移除编译时的-Werror选项:
- 先下载对应版本的源码包:
pip download Adafruit_BBIO==1.1.1 tar xzf Adafruit_BBIO-1.1.1.tar.gz cd Adafruit_BBIO-1.1.1 - 编辑
setup.py文件,找到包含-Werror的编译参数行,把-Werror删除 - 执行安装命令:
sudo python setup.py install
方法3:切换到Python 3版本安装
如果你的项目支持Python 3,可以试试安装Python 3版本的库:
- 先安装Python 3的pip工具:
sudo apt-get install python3-pip - 安装库(如果遇到同样编译问题,建议用方法1的GitHub源码安装Python 3版本):
sudo pip3 install Adafruit_BBIO
问题原因说明
Debian 10 Buster使用的GCC版本(通常是8.x)比Adafruit_BBIO 1.1.1发布时的编译器更严格,新增了-Wcast-function-type警告来检测不安全的函数指针类型转换。而Adafruit_BBIO的编译配置里启用了-Werror,会把所有警告都当作错误处理,最终导致编译失败。
内容的提问来源于stack exchange,提问作者programmer25
相关产品推荐
相关产品推荐

