当我在 Matlab 中使用
!epstopdf "output.eps" --outfile=output.pdf
然后我收到以下消息之一:
gs: /opt/MATLAB/R2016b/bin/glnxa64/libtiff.so.5: no version information available (required by /usr/lib/libgs.so.9)
gs: /opt/sw/x86_64/generic/Matlab/R2016b/bin/glnxa64/libtiff.so.5: no version information available (required by /usr/lib64/libgs.so.9)
gs: /opt/sw/x86_64/generic/Matlab/R2017b/bin/glnxa64/libtiff.so.5: no version information available (required by /usr/lib64/libgs.so.9)
我正在使用 Ghostscript 9.18(Ubuntu 16.04 的默认版本)。(Ghostscript 9.07 存在同样的问题)
答案1
没有可用的版本信息意味着您有一个旧版本(Ghostscript),请参阅: https://stackoverflow.com/a/156387/6747994
因此您必须更新到 Ghostscript 9.23(或更新版本): https://askubuntu.com/a/942995/676490
你必须
- 从以下网址下载源代码https://www.ghostscript.com/download/gsdnld.html或者https://github.com/ArtifexSoftware/ghostpdl-downloads/releases(直接链接至系统版本 10.02.1)
- 解压缩 (fe
tar xvf ghostscript-10.02.1.tar.gz
) - 进入此文件夹
sudo ./configure
sudo make install
- 重启终端
- 测试
gs -v
你拥有的版本
答案2
在我的系统(Linux Mint 21 Vanessa 64 位)上,问题在于系统安装的库 libtiff.so.5 和 libstdc++.so.6 与 Matlab 附带的库不兼容。
系统:
/usr/lib/x86_64-linux-gnu/libstdc++.so.6
是指向/usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.30
/usr/lib/x86_64-linux-gnu/libtiff.so.5
是指向/usr/lib/x86_64-linux-gnu/libtiff.so.5.7.0
随 Matlab 发行版一起提供:
R2022b/sys/os/glnxa64/libstdc++.so.6
是指向R2022b/sys/os/glnxa64/libstdc++.so.6.0.28
R2022b/bin/glnxa64/libtiff.so.5
是指向R2022b/bin/glnxa64/libtiff.so.5.8.0
为了解决这个问题,您需要确保 Matlab 库文件夹中的相关符号链接指向系统库文件,而不是 Matlab 附带的文件。即:
R2022b/sys/os/glnxa64/libstdc++.so.6
必须是指向/usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.30
R2022b/bin/glnxa64/libtiff.so.5
必须是指向/usr/lib/x86_64-linux-gnu/libtiff.so.5.7.0
这个问题已经存在很多年了,上面的方法一直有效。对于特定版本的 Matlab 和您的系统,您只需使用适合您系统的 Matlab 文件夹和系统库(在上面的示例中:R2022b 以及 /usr/lib/x86_64-linux-gnu/ 文件夹中的任何版本)。
答案3
当我使用 mex 命令编译 opencv c++ 文件或使用 mex 文件时,我收到类似的错误消息:
MATLAB/bin/glnxa64/libtiff.so.5:未找到版本“LIBTIFF_4.0”(* 所需)
或者
“无效的 MEX 文件‘.mexa64’:libtiff.so.5:未找到版本‘LIBTIFF_4.0’”(/usr/lib/x86_64-linux-gnu/libopencv_highgui.so.2.4 所要求)
我按照下面的方法解决了,请参考。
sudo rm -rf /usr/local/MATLAB/R2017a/bin/glnxa64/libtiff.so.5
sudo ln -s /usr/lib/x86_64-linux-gnu/libtiff.so.5.2.4 /usr/local/MATLAB/R2017a/bin/glnxa64/libtiff.so.5
命令第一行将libtiff.xo.5
文件从原路径中移除,第二行命令是链接/usr/lib/x86_64-linux-gnu/libtiff.so.5.2.4
到/usr/local/MATLAB/R2017a/bin/glnxa64/libtiff.so.5
,这样两个文件版本对应起来,问题就解决了。
执行命令locate libtiff.so.5.2.4
您将在/usr/local/MATLAB/R2017a/bin/glnxa64/
目录中找到此文件。
/usr/lib/x86_64-linux-gnu/libtiff.so.5.2.4
注意上面的matlab版本路径应该是属于你自己的。