一、方法一:下载并软链接
1. 错误提示:
/lib/aarch64-linux-gnu/libz.so.1: version `ZLIB_1.2.9' not found (required by /root/aarch64-xilinx-linux/usr/lib/libpng16.so.16)
2. 解决方法
下载 zlib-1.2.9.tar.gz 官网http://www.zlib.net/fossils/ 到linux机器上,然后进入压缩包文件路径并执行以下命令:
(1)安装相关依赖环境
apt-get update apt-get install build-essential
(2)解压编译zlib
tar -xvf zlib-1.2.9.tar.gz cd zlib-1.2.9 sudo -s # 进入root用户 ./configure make make install
(3)通过软连接将zlib连接到共享库路径:
/lib/aarch64-linux-gnu/libz.so.1: version `ZLIB_1.2.9' not found (required by /root/aarch64-xilinx-linux/usr/lib/libpng16.so.16)
ln -s -f /usr/local/lib/libz.so.1.2.9 /lib/aarch64-linux-gnu/libz.so.1
软链接:
ln -s -f /usr/local/lib/libz.so.1.2.9 /lib/aarch64-linux-gnu/libz.so.1
二、方法二:搜索并软链接
示例:
/lib/aarch64-linux-gnu/libstdc++.so.6: version `CXXABI_1.3.11' not found (required by /root/aarch64-xilinx-linux/usr/lib/libtbb.so.2)
注:这种错误一般是版本过低导致,置其没有达到要求版本CXXABI_1.3.11
1. 查看 /lib/aarch64-linux-gnu/libstdc++.so.6已存在的CXXABI版本
strings /usr/lib/aarch64-linux-gnu/libstdc++.so.6 | grep CXXABI
可见没有所要求的CXXABI_1.3.11
2. 查看libstdc++.so.6指向的具体版本
ll /usr/lib/aarch64-linux-gnu/libstdc++.so.6
可见其指向的是libstdc++.so.6.0.21
那么我们全局搜索到大于 6.0.21的libstdc++.so,可能就存在CXXABI_1.3.11
3. 全局搜索大于现存版本的库libstdc++.so,命令如下:
root@ubuntu:/mnt# find / -name "libstdc++.so.*"
如上,尽量选现存的最大版本,本文选择6.0.24,记住该路径并将其拷贝至 /lib/aarch64-linux-gnu/
cp /root/aarch64-xilinx-linux/usr/lib/libstdc++.so.6.0.24 /lib/aarch64-linux-gnu/
4. 改变软链接指向
cd /lib/aarch64-linux-gnu/ sudo rm libstdc++.so.6 sudo ln -s libstdc++.so.6.0.26 libstdc++.so.6
5. 查看是否出现满足的版本
strings /usr/lib/aarch64-linux-gnu/libstdc++.so.6 | grep CXXABI
可见,版本已经满足要求,如若仍不存在,说明本机存在的libstdc++.so现存最大版本仍较低,需要更高版本进行更新,此时可使用方法一,或者在另外的linux机器上拷贝更高版本至本机。