一、linux下的安装和使用
1.安装
下载源程序包 ,解压,运行以下三条命令
./configure
make
make install
在/usr/local/lib目录下会出现编译好了的相关gdal库,我用的redhat linux下的一个问题是/usr/local/lib目录不在库的查找路径中,因此链接时会出现找不到gdal库的问题。有人认为这是redhat的一个bug ,但redhat解释是故意这样做的,他们建议开发人员可以自行添加该路径到库搜索目录中:
echo /usr/local/lib > /etc/ld.so.conf.d/local.conf /sbin/ldconfig
另外,如下配置命令可以让python版本的gdal在make时安装:
./configure --with-python
如果出现错误:
extensions/gdal_wrap.cpp: error: Python.h: No such file or directory
这是没有python-dev的缘故,参考本文末尾。
2.使用
2.1 gdal库连接问题
在我用的RetHat linux上gdal成功安装后,相关的库也会拷贝到/usr/local/lib目录下(注意这个目录不是系统的默认加载路径,所以系统不知道在哪里加载libgdal.so库),需要指定库路径:让程序在运行时能找到这些库
运行时如果出现以下错误:
error while loading shared libraries: libgdal.so.1: cannot open shared object file: No such file or directory
说明系统不知道gdal共享库加载路径,运行 ldd命令 列出程序正常运行所需要的共享库
ldd test.o
[root@test]# ldd a.out
/usr/lib/libcwait.so (0x0054f000)
libgdal.so.1 => not found
libstdc++.so.6 => /usr/lib/libstdc++.so.6 (0x00b42000)
libm.so.6 => /lib/tls/libm.so.6 (0x009b5000)
libgcc_s.so.1 => /lib/libgcc_s.so.1 (0x00b03000)
libc.so.6 => /lib/tls/libc.so.6 (0x0088a000)
/lib/ld-linux.so.2 (0x00871000)
解决办法如下
a. 设置环境变量:
设置$LD_LIBRARY_PATH=库所在目录(多个目录用:分隔),系统加载工具将顺序搜索变量指定的目录