gdal安装和使用
一、linux下的安装和使用
1.安装
下载源程序包 ,解压,运行以下三条命令
./configure make make install
在/usr/local/lib目录下会出现编译好了的相关gdal库
2.使用
2.1 gdal库连接问题
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=库所在目录(多个目录用:分隔),系统加载工具将顺序搜索变量指定的目录
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++程序
运行以下命令
g++ test.cpp -lgdal -o test.o
二、Mac OS X下的安装与使用
1.安装
William Kyngesburye维护了一个GDAL的Mac OS X framework .
按指示安装即可,卸载的话直接将/Library/Framework/GDAL.framework, /Library/Application Support/GDAL,~/Library/Application Support/GDAL 扔到trash里
2.使用
编译使用GDAL库的C++程序运行以下命令
g++ gdal_test.cpp -framework GDAL -o gdal_test.o
注意
1. 不要错用成gcc命令了;
2. C++程序中的include一律要加上GDAL/,例如
#include "GDAL/ogrsf_frmts.h"
三、跨平台编译
使用预处理器的技巧区分处理平台的不同
用编译器的-D传入平台相关信息,一个例子:
#ifdef MAC_OS_X #include "GDAL/ogrsf_frmts.h" #else #include "ogrsf_frmts.h" #endif
在Mac下编译
g++ -D MAC_OS_X -framework GDAL test.cpp -o test.o
在linux下编译方式不变
g++ test.cpp -lgdal -o test.o
也许还有更优雅的跨平台方法,我暂时还不知道
发表评论
- 浏览: 2177 次
- 性别:

- 来自: 北京

- 详细资料
搜索本博客
最新评论
-
Mnesia──一个用于电信应 ...
linliangyi2007 写道不知道哪里抄的! 不知道是该葱白,还是无语!这 ...
-- by theseus8054 -
关于真随机数生成器
随着半导体生产工艺的不断改进....赶快囤积劣质内存
-- by rubynroll -
关于真随机数生成器
引用RSA的书上介绍过一种随机数发生器,根据的是劣质内存芯片工作在高温下,其数据 ...
-- by gigix -
Mnesia──一个用于电信应 ...
不知道哪里抄的! 不知道是该葱白,还是无语!这样的东西如果中国军方能自行研发,倒 ...
-- by linliangyi2007 -
Mnesia──一个用于电信应 ...
学术论文?
-- by baibai326






评论排行榜