编译llvmlite Python Wheel时LLVM版本不匹配问题求助
解决llvmlite编译LLVM版本检测异常问题
编译llvmlite 0.41.1 Android wheel时出现以下错误:
LLVM version... 8.0.0 Traceback (most recent call last): File "/home/default/Coding/chaquopy/server/pypi/packages/llvmlite/build/0.41.1/cp39-cp39-android_21_armeabi_v7a/src/ffi/build.py", line 228, in <module> main() File "/home/default/Coding/chaquopy/server/pypi/packages/llvmlite/build/0.41.1/cp39-cp39-android_21_armeabi_v7a/src/ffi/build.py", line 218, in main main_posix('linux', '.so') File "/home/default/Coding/chaquopy/server/pypi/packages/llvmlite/build/0.41.1/cp39-cp39-android_21_armeabi_v7a/src/ffi/build.py", line 174, in main_posix raise RuntimeError(msg) RuntimeError: Building llvmlite requires LLVM 14, got '8.0.0'. Be sure to set LLVM_CONFIG to the right executable path. Read the documentation at http://llvmlite.pydata.org/ for more information about building llvmlite.
已安装LLVM 14,手动设置LLVM_CONFIG指向/usr/bin/llvm-config-14,甚至重命名为llvm-config,问题仍未解决,可尝试以下方案:
验证
LLVM_CONFIG环境变量有效性
执行echo $LLVM_CONFIG,确认输出为/usr/bin/llvm-config-14。若未输出,需重新设置:- 临时生效:执行
export LLVM_CONFIG=/usr/bin/llvm-config-14 - 永久生效(bash环境):将上述命令添加到
~/.bashrc,再执行source ~/.bashrc
- 临时生效:执行
排查PATH优先级问题
系统中旧版LLVM的llvm-config可能优先级更高,执行which llvm-config,若输出指向LLVM 8的路径,需将LLVM 14的bin目录放到PATH最前面:export PATH=/usr/lib/llvm-14/bin:$PATH(注:LLVM 14的bin目录路径可能因系统不同有所差异,若你的llvm-config-14在/usr/bin下,可跳过此步)
清理编译缓存后重新编译
先删除llvmlite的build目录:rm -rf /home/default/Coding/chaquopy/server/pypi/packages/llvmlite/build/0.41.1/cp39-cp39-android_21_armeabi_v7a/build再重新执行编译命令
检查交叉编译环境配置
由于是编译Android平台的wheel,属于交叉编译场景,需确认交叉编译脚本或环境中是否正确传递了LLVM_CONFIG变量,避免使用系统默认的旧版LLVM配置。
内容的提问来源于stack exchange,提问作者tarlo
相关产品推荐
相关产品推荐

