GDAL的安装和配置---出现的问题

 

一、linux下的安装和使用

1.安装

下载源程序包 ,解压,运行以下三条命令

Java代码   
  1. ./configure   
  2. make   
  3. make install  
./configure
make
make install


在/usr/local/lib目录下会出现编译好了的相关gdal库,我用的redhat linux下的一个问题是/usr/local/lib目录不在库的查找路径中,因此链接时会出现找不到gdal库的问题。有人认为这是redhat的一个bug ,但redhat解释是故意这样做的,他们建议开发人员可以自行添加该路径到库搜索目录中:

Shell代码   
  1. echo /usr/local/lib > /etc/ld.so.conf.d/local.conf   
  2.   
  3. /sbin/ldconfig  
 

 

另外,如下配置命令可以让python版本的gdal在make时安装:

./configure --with-python

 

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=库所在目录(多个目录用:分隔),系统加载工具将顺序搜索变量指定的目录

Java代码   
  1. LD_LIBRARY_PATH=/usr/local/lib:/usr/local/erlang/lib; export LD_LIBRARY_PATH  
LD_LIBRARY_PATH=/usr/local/lib:/usr/local/erlang/lib; export LD_LIBRARY_PATH
b.  以root身份把库路径加入/etc/ld.so.conf

vim /etc/ld.so.conf.d/gdal.conf

在此文件中增加如下路径

/usr/local/gdal-1.5.1/.libs

然后运行ldconfig更新/etc/ld.so.cache
/sbin/ldconfig

c.

直接把gdal相关的库拷贝到/usr/lib下

共享库搜索顺序一般是$LDLIBRARY_PATH,/etc/ld.so.cache, /usr/lib, /lib

参考:Linux编程使用库

2.2 编译使用GDAL库的C++程序

运行以下命令

Java代码   
  1. g++ test.cpp -lgdal -o test.o   
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值