使用pip安装netifaces遇clang报错:未知目标CPU 'x86-64-v3'
解决netifaces编译时clang不支持x86-64-v3的问题
方案一:安装时强制指定-march=x86-64
直接通过设置CFLAGS环境变量覆盖默认编译参数,让pip调用clang时使用兼容的架构选项:
CFLAGS="-march=x86-64" pip install netifaces
如果用了虚拟环境,确保激活环境后执行该命令,就能绕过x86-64-v3的编译错误。
方案二:升级clang以支持x86-64-v3
Debian 10默认apt源里的clang版本偏老(一般是clang-7/8),而x86-64-v3需要clang-10及以上版本才支持,所以得升级clang:
方法1:用Debian Backports源
- 创建backports源配置文件:
sudo nano /etc/apt/sources.list.d/backports.list
粘贴以下内容并保存:
deb http://deb.debian.org/debian buster-backports main
- 更新源并安装新版clang:
sudo apt update sudo apt -t buster-backports install clang
安装完用clang --version确认版本,只要是clang-10或更高就支持x86-64-v3。
方法2:添加LLVM官方源
如果backports的版本还不够,直接用LLVM官方提供的新版本:
- 导入LLPG密钥:
wget -O - https://apt.llvm.org/llvm-snapshot.gpg.key | sudo apt-key add -
- 添加Debian 10对应的LLVM源:
echo "deb http://apt.llvm.org/buster/ llvm-toolchain-buster-14 main" | sudo tee /etc/apt/sources.list.d/llvm.list
(也可以替换成更高的兼容版本,比如15、16)
3. 更新源并安装clang-14:
sudo apt update sudo apt install clang-14
- 设置新版本为默认clang:
sudo update-alternatives --install /usr/bin/clang clang /usr/bin/clang-14 100 sudo update-alternatives --install /usr/bin/clang++ clang++ /usr/bin/clang++-14 100
为什么apt安装的clang不支持x86-64-v3?
Debian 10(Buster)是稳定发行版,官方源的软件包优先保证稳定性,版本更新慢。x86-64-v3是Intel 2019年推出的架构扩展,而Debian 10默认提供的clang版本发布时还没加入对这个架构的支持,所以会出现参数不识别的情况。
内容的提问来源于stack exchange,提问作者Jason C
相关产品推荐
相关产品推荐

