我是Linux新手,在Ubuntu 16.04上使用Eclipse Oxygen.2版本4.7.2
我收到错误:
/usr/lib/opencv-2.4.13.5/build/lib/libopencv_java2413.so:/lib/x86_64-linux-gnu/libz.so.1:找不到版本`ZLIB_1.2.9'(/ home/mel3 /需要)水蟒/ LIB/libpng16.so.16)
我已经尝试升级和重新加载,不确定是否存在路径错误或发生了什么.非常感谢
Ale*_*ski 26
接受的答案对我不起作用,但是在这之后做了:
https://ubuntuforums.org/showthread.php?t=2375927
重复答案:
cd /your_software/../lib/ (the directory containing libz.so.1)
mv libz.so.1 libz.so.1.old
ln -s /lib/x86_64-linux-gnu/libz.so.1
Run Code Online (Sandbox Code Playgroud)
小智 18
下载 Zlib 1.2.9然后运行这些命令
tar -xvf ~/Downloads/zlib-1.2.9.tar.gz
cd zlib-1.2.9
sudo -s
./configure; make; make install
cd /lib/x86_64-linux-gnu
ln -s -f /usr/local/lib/libz.so.1.2.9/lib libz.so.1
cd ~
rm -rf zlib-1.2.9
Run Code Online (Sandbox Code Playgroud)
有关详细信息,请访问此链
Slu*_*sco 12
接受的答案并没有为我工作,要么,我真的建议符号链接在广泛使用的二进制文件时小心像/lib/x86_64-linux-gnu/libz.so.1
.
在make uninstall
对zlib-1.2.9
会破坏这个符号链接,这将打破一吨的包,是一个巨大的痛苦来解决.
Alex的解决方案对我有用,并且破坏性小得多,因为您只修改了可执行文件目录中的符号链接,而不是整个系统.
小智 6
一个安全的选择是下载(或构建)libz.so.1.2.9,并将其放置在可执行文件的目录(或任何位置)中,并将LD_LIBRARY_PATH 导出到该目录,而不是搞乱系统库。
例如
cd /<DIRECTORY OF YOUR EXECUTABLE NEEDING ZLIB__1.2.9>/
export LD_LIBRARY_PATH=$PWD
Run Code Online (Sandbox Code Playgroud)
现在您的可执行文件将从新位置加载 zlib,而不是 /lib/x86_64-linux-gnu
检查与
ldd <executable>
Run Code Online (Sandbox Code Playgroud)
应从新的 LD_LIBRARY_PATH 引用 zlib
小智 6
如果 Kamrul hassan 的解决方案损坏了您的电脑,请不要惊慌并执行以下操作:
sudo ldconfig
Run Code Online (Sandbox Code Playgroud)
以恢复到以前的状态。
为我工作:
wget https://github.com/madler/zlib/archive/v1.2.11.tar.gz
tar -zxvf v1.2.11.tar.gz
cd zlib-1.2.11
./configure --prefix=/bin/zlib/
make
make install
export LD_LIBRARY_PATH="/bin/zlib/lib":$LD_LIBRARY_PATH
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
23693 次 |
最近记录: |