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

news/2024/7/5 14:21:29
 

一、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   

http://www.niftyadmin.cn/n/2278883.html

相关文章

主题:Linux平台gcc和动态共享库的基础知识

对大多数不从事Linux平台C语言开发的人来说,GNU gcc的一套工具和Linux平台的共享库的使用还是十分陌生的,其实我也不太熟悉,姑且写点基础知识,权当做备忘吧。 一、GNU gcc的编译工具用法 我们先来写一个简单的C程序:he…

配置mapserv出现了问题。。。

Q: I installed the PROJ.4, GDAL, or one of the support libraries on my system, it is recognized by MapServer’s “configure” as a system lib but at runtime I get an error: “libproj.so.0: No such file or directory”. A: You are probably running a RedHat L…

Ubuntu 桌面图标不见,鼠标右键的问题

主要步骤:1 终端运行:sudo apt-get install nautilus 2 终端运行:sudo nautilus 虽然自己的文件系统是可以打得了,但是自己的系统选线的图标还是没有出来,又找了很多的帖子问题还是没解决,突然自己想是不是…

linux命令学习:PATH and LDFLAGS and CFLAGS

CFLAGS 表示用于 C 编译器的选项, CXXFLAGS 表示用于 C 编译器的选项。 这两个变量实际上涵盖了编译和汇编两个步骤。 先来看几个相关的环境变量:PATH、LDFLAGS、CFLAGS PATH:大家应该都很熟悉。安装一个包后可能会在安装目录建立一个bin目录…

VMware上Ubuntu10.04设置静态IP地址

用VMware上的Virtual Network Editor来查看虚拟机的联网。之后在物理主机上把VMware Network Adapter VMnet1的IP和DNS都设置为自动获取。VMware Network Adapter VMnet8的IP和DNS也设置为自动获取。之后重启虚拟机。 打开终端输入: sudo gedit /etc/network/interf…

ubuntu 10.04桌面不见了 鼠标右键也失效

方法一: 直接按 Alt F2,然后在出来的对话框中输入 gnome-terminal , 回车执行 弹出命令行终端,或者 Ctrl Alt T 弹出命令行终端 打开终端 ,终端窗口打开之后 ,输入下列命令: gconftool --recursive-unset /apps…

Ubuntu环境变量配置文件简介

Ubuntu环境变量配置文件简介 在Ubuntu中有如下几个文件可以设置环境变量 /etc/profile:在登录时,操作系统定制用户环境时使用的第一个文件,此文件为系统的每个用户设置环境信息,当用户第一次登录时,该文件被执行。 /etc/environment:在登录时操作系统使用的第二个文件,系统在读…

Weblogic应用程序部署指南

Weblogic应用程序部署指南 博客分类: Weblogic应用程序部署指南 1.1 部署JAVA EE应用程序 将编译好的Web应用程序复制到WebLogic的服务器目录下。例如路径D:\bea10\user_projects\domains\base_domain\autodeploy; 这样,当启动WebLo…