执行make命令遇CXXABI_1.3.8缺失错误,求解决方案
解决Vivado 2015.2与Ubuntu 18.04的libstdc++库冲突问题
问题背景
你遇到的错误是典型的库版本冲突:Vivado 2015.2自带的libstdc++.so.6版本过于老旧,缺少Ubuntu 18.04系统中Python apt模块依赖的CXXABI_1.3.8版本标记,导致运行make命令时触发ImportError异常。
可行的解决方案
方法1:临时调整环境变量(推荐快速测试)
在执行make前,先将系统的库路径放到Vivado库路径的前面,让系统优先调用新版本的库:
export LD_LIBRARY_PATH=/usr/lib/x86_64-linux-gnu:$LD_LIBRARY_PATH
之后再运行make即可。如果需要长期生效,把这条命令添加到~/.bashrc或~/.profile文件末尾,保存后执行source ~/.bashrc使配置生效。
方法2:重命名Vivado的旧库文件(长期解决)
直接让Vivado使用系统自带的新库,步骤如下:
- 进入Vivado的库目录:
cd /opt/Xilinx/Vivado/2015.2/lib/lnx64.o/
- 备份并重命名旧的库文件:
sudo mv libstdc++.so.6 libstdc++.so.6.bak
这样系统会自动使用Ubuntu 18.04自带的libstdc++.so.6(由gcc 7.3.0提供,包含所需的CXXABI_1.3.8)。
方法3:替换Vivado库文件(谨慎操作)
如果前两种方法无效,可以尝试直接替换Vivado的库文件为系统版本,但注意这可能影响Vivado的稳定性:
- 找到系统库的路径:
find /usr -name libstdc++.so.6
通常路径是/usr/lib/x86_64-linux-gnu/libstdc++.so.6
2. 备份Vivado的旧库:
sudo cp /opt/Xilinx/Vivado/2015.2/lib/lnx64.o/libstdc++.so.6 /opt/Xilinx/Vivado/2015.2/lib/lnx64.o/libstdc++.so.6.bak
- 复制系统库到Vivado目录:
sudo cp /usr/lib/x86_64-linux-gnu/libstdc++.so.6 /opt/Xilinx/Vivado/2015.2/lib/lnx64.o/
内容的提问来源于stack exchange,提问作者hadi nik
相关产品推荐
相关产品推荐

