Oracle ARM64 Ubuntu20.04环境下TA-Lib安装失败求助
解决Oracle ARM64 Ubuntu 20.04下TA-Lib编译安装的gcc参数错误问题
问题场景
在Oracle ARM64架构的Ubuntu 20.04虚拟机中,按以下步骤安装TA-Lib:
apt install -y build-essential automake wget http://prdownloads.sourceforge.net/ta-lib/ta-lib-0.4.0-src.tar.gz tar zxvf ta-lib-0.4.0-src.tar.gz cd ta-lib cp /usr/share/automake-1.16/config.guess . ./configure --prefix=/usr make && make install pip install TA-Lib
执行pip install TA-Lib时出现gcc参数错误:
gcc: error: .2-a+fp16+rcpc+dotprod+crypto: No such file or directory gcc: error: unrecognized command line option ‘-n1’; did you mean ‘-n’?
尝试从源码编译安装:
git clone https://github.com/mrjbq7/ta-lib.git cd ta-lib python3 setup.py install
仍出现相同错误。
错误原因
从gcc命令行参数可以看出,原本的ARM架构优化参数(如-march=armv8.2-a+fp16+rcpc+dotprod+crypto)被错误拆分,导致-n1被当作无效命令行选项,.2-a+...被当作文件路径。这是由于Anaconda环境的CFLAGS/CXXFLAGS环境变量格式错误导致的。
解决方法
方法1:临时覆盖编译环境变量后安装
在执行安装命令前,先设置正确的编译参数,避免错误的参数干扰:
# 基础编译参数,不指定ARM优化 export CFLAGS="-O2 -Wall -fPIC" export CXXFLAGS="-O2 -Wall -fPIC" pip install TA-Lib
如果需要保留ARM架构优化,使用正确的参数:
export CFLAGS="-O2 -Wall -fPIC -march=armv8.2-a+fp16+rcpc+dotprod+crypto" export CXXFLAGS="-O2 -Wall -fPIC -march=armv8.2-a+fp16+rcpc+dotprod+crypto" pip install TA-Lib
方法2:使用系统Python而非Anaconda安装
Anaconda的默认编译参数可能存在适配问题,改用系统自带Python安装:
apt install -y python3-pip python3-numpy pip3 install TA-Lib
方法3:修复Anaconda环境变量
检查当前环境的编译参数:
echo $CFLAGS echo $CXXFLAGS
如果输出包含错误的-n1或拆分的参数,在~/.bashrc或~/.zshrc中添加正确的环境变量覆盖:
echo 'export CFLAGS="-O2 -Wall -fPIC"' >> ~/.bashrc echo 'export CXXFLAGS="-O2 -Wall -fPIC"' >> ~/.bashrc source ~/.bashrc
之后重新执行TA-Lib安装命令。
内容的提问来源于stack exchange,提问作者GZero
相关产品推荐
相关产品推荐

