Linux-GDAL部署
- 一、部署要求
- 二、安装
- 1、SQLite3:解压,配置 并编译安装 SQLite3:
- 2、PROJ:解压、配置 并编译 PROJ:
- 4、GEOS:解压、配置并编译安装GEOS:
- 5、配置动态链接库
- 6、GDAL 解压、配置 并编译安装 GDAL:
- 7、GDAL编译java
- 8、添加动态链接库
- 9、 gdal.jar打包到maven
- 三、问题
提示:以下是本篇文章正文内容,下面案例可供参考
一、部署要求
java,ant,pcre和swig:其中pcre是swig所需的依赖项,因此必须先于swig安装。java、ant和swig都可以通过 -version查看。ava和ant的安装比较类似,将下载下来的压缩包解压好后,在/etc/profile文件中配置好JAVA_HOME、ANT_HOME以及CLASSPATH后即可记得对这三个变量进行export,并把前两个加入到PATH中。
gcc和g++ :这个如果没有去装一个就好了,可以通过命令gcc -v 和 g++ -v 来查看
SQLite3:PROJ需要的环境 下载地址: https://www.sqlite.org/download.html
PROJ:gdal需要的环境 下载地址:https://proj.org/download.html
GEOS:gdal需要的环境 下载地址:http://download.osgeo.org/geos/
注:gadl3.0以上需要proj6以上
二、安装
1、SQLite3:解压,配置 并编译安装 SQLite3:
1
2
3
4
5
6
7powershell tar -zxvf sqlite-autoconf-3330000.tar.gz cd sqlite-autoconf-3330000/ ./configure make make install
2、PROJ:解压、配置 并编译 PROJ:
1
2
3
4
5
6tar -zxvf proj-6.3.0.tar.gz cd proj-6.3.0/ ./configure make make install
4、GEOS:解压、配置并编译安装GEOS:
1
2
3
4
5
6tar -xvf geosXXX.tar.gz cd ./geosXXX ./configure --prefix=/opt/geosXXX make make install
提示:其中/opt/geosXXX为定义的安装位置
5、配置动态链接库
让gdal能够找到proj及geos的所在位置。共享文件默认安装在/usr/local/lib位置下:
1
2
3
4
5cd /etc/ld.so.conf.d/ touch local.conf echo "/usr/local/lib" > local.conf 最后可使用ldconfig -v来查看详细信息。
6、GDAL 解压、配置 并编译安装 GDAL:
因为是liunx系统,直接去官网下载二进制源文件 编译
官网:https://gdal.org/download.html
或者直接运行命令:
1
2# wget -c -P /storage/software/gdal http://download.osgeo.org/gdal/3.3.2/gdal-3.3.2.tar.gz
解压、配置。编译
1
2
3
4
5
6tar -zxvf gdal-3.2.0.tar.gz cd gdal-3.2.0/ ./configure make make install
不配置./configure编译路径 默认在/usr/local/lib下
修改配置文件
1
2vi /etc/profile
新增:
1
2export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib
刷新:
1
2source /etc/profile
检测gdal是否编译成功
1
2gdalinfo -version
7、GDAL编译java
编辑 vi gdal-3.2.0/swig/java/java.opt 配置 JAVA_HOME 路径:
1
2
3
4
5
6
7
8
9
10
11
12# # Java Stuff #JAVA_HOME = "C:Program FilesJavajdk1.6.0_16" #JAVA_HOME = /usr/lib/jvm/java-6-openjdk/ #JAVA_HOME = /usr/lib/jvm/java-7-openjdk-amd64/ JAVADOC=$(JAVA_HOME)/bin/javadoc JAVAC=$(JAVA_HOME)/bin/javac JAVA=$(JAVA_HOME)/bin/java JAR=$(JAVA_HOME)/bin/jar JAVA_INCLUDE=-I$(JAVA_HOME)/include -I$(JAVA_HOME)/include/linux JAVA_HOME = /usr/local/jdk1.8.0_261/
编译:
1
2
3
4cd gdal-3.2.0/swig/java/ make make install
make成功,在当前文件夹下生成了 gdal.jar 和 一堆 *.so 文件。
8、添加动态链接库
把/gdal/gdal-3.3.2/swig/java/下的.so文件拷贝到/usr/local/lib/下去:
执行:# cp /gdal/gdal-3.3.2/swig/java/*.so /usr/local/lib/
因为之前安装gdal的时候,配置的 /etc/profile中库指向的是/usr/local/lib
9、 gdal.jar打包到maven
gdal.jar拷贝到本地项目根目录下
然后在项目pom文件中引用:
1
2
3
4
5
6
7
8
9<dependency> <groupId>org.gdal</groupId> <artifactId>gdal</artifactId> <version>3.0.0</version> <scope>system</scope> <systemPath>${project.basedir}/.idea/libraries/gdal.jar</systemPath> </dependency>
搞定。
三、问题
1、编译gdal时,出现:
1
2
3/gdal-3.1.1/.libs/libgdal.so: undefined reference to `sqlite3_column_origin_name' /gdal-3.1.1/.libs/libgdal.so: undefined reference to `sqlite3_column_table_name'
解决办法:sqlite3需要配置一个宏:
cd ./sqlite-autoconf-3320300
找到./sqlite3.c文件,添加
1
2#define SQLITE_ENABLE_COLUMN_METADATA 1
如下:
1
2
3
4
5
6
7
8
9#define SQLITE_CORE 1 #define SQLITE_AMALGAMATION 1 #ifndef SQLITE_PRIVATE # define SQLITE_PRIVATE static #endif #define SQLITE_ENABLE_COLUMN_METADATA 1 /************** Begin file ctime.c *******************************************/ /*
然后再:
1
2
3
4./configure make sudo make install
2、编辑proj从报错
configure: error: Package requirements (sqlite3 >= 3.11) were not met:
是因为缺少sqlite3相关库,解决办法:
1
2yum -y install sqlite-devel
3、make 编译gdal报错jpeg2000dataset.cpp:35:10: fatal error: jasper/jasper.h: No such file or directory
解决办法:
下载jasper:http://download.osgeo.org/gdal/jasper-1.900.1.uuid.tar.gz
安装:参考官网
安装:
1
2
3
4
5
6
7wget http://download.osgeo.org/gdal/jasper-1.900.1.uuid.tar.gz tar xvf jasper-1.900.1.uuid.tar.gz cd jasper-1.900.1.uuid ./configure make make install
等待编译完成,在bashrc文件中添加库链接:
1
2vi ~/.bashrc
在最后添加如下:
1
2
3export PATH=$PATH:/usr/local/bin export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib
保存应用:
1
2
3:wq source ~/.bashrc
再去重新make GDAL
最后
以上就是纯情手套最近收集整理的关于Linux下实现GDAL部署安装,java项目引用一、部署要求二、安装三、问题的全部内容,更多相关Linux下实现GDAL部署安装内容请搜索靠谱客的其他文章。
发表评论 取消回复