我(我自己是一名程序新手)在archlinux中启动脚本时收到以下错误消息,该脚本由朋友编写:
/usr/bin/psxy: error while loading shared libraries: libgdal.so.1: cannot open shared object file: No such file or directory
/usr/bin/psbasemap: error while loading shared libraries: libgdal.so.1: cannot open shared object file: No such file or directory
/usr/bin/ps2raster: error while loading shared libraries: libgdal.so.1: cannot open shared object file: No such file or directory
/usr/bin/psxy: error while loading shared libraries: libgdal.so.1: cannot open shared object file: No such file or directory
在脚本中,它使用Generic Mapping Tools(GMT)。我认为问题是链接器问题并且与gdal
有关。安装的版本是:
gdalinfo --version
GDAL 2.0.0, released 2015/06/14
确实,libgdal.so.1
未安装(或已重命名为/usr/lib/libgdal.so
?):
/sbin/ldconfig -p | grep gdal
libgdal.so.20 (libc6,x86-64) => /usr/lib/libgdal.so.20
libgdal.so (libc6,x86-64) => /usr/lib/libgdal.so
但是当我想安装gdal1
时,就会发生与已经安装的gdal
(我认为是2.0)的冲突。
我该怎么办?我是否必须编辑脚本,如果是,在哪里,使用gdal?
修改
在执行脚本之前输入LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/lib
,并显示与上面相同的错误消息。
然后,我尝试按ldconfig
编辑locate libgdal
文件:
/usr/lib/libgdal.so
/usr/lib/libgdal.so.20
/usr/lib/libgdal.so.20.0.0
nano /etc/ld.so.conf -> adding /usr/lib/
但/sbin/ldconfig -p | grep gdal
仍显示:
libgdal.so.20 (libc6,x86-64) => /usr/lib/libgdal.so.20
libgdal.so (libc6,x86-64) => /usr/lib/libgdal.so
答案 0 :(得分:9)
您可以创建指向该库的符号链接,以便您的应用程序可以找到它:
ln -s /usr/lib/libgdal.so /usr/lib/libgdal.so.1
之后,运行/sbin/ldconfig