1、安装 gcc,g++ 等编译器
yum -y install gcc gcc-c++ autoconf pcre pcre-devel make automake
2、安装 sqlite-devel
yum install sqlite-devel
3、安装 proj
proj下载,解压安装
tar -zxvf proj-6.2.1.tar.gz
cd proj-6.2.1
./configure
make
make install
4、安装 swig
yum install -y swig
5、安装 gdal
gdal下载,解压安装
tar -zxvf gdal-3.0.4.tar.gz
cd gdal-3.0.4
./configure --prefix="/usr/local"
make
make install
注意:编译可能会出现的问题
解决办法:https://my.oschina.net/u/4382322/blog/4523014
/usr/local/gdal/gdal-3.0.4/.libs/libgdal.so: undefined reference to `sqlite3_column_origin_name'
/usr/local/gdal/gdal-3.0.4/.libs/libgdal.so: undefined reference to `sqlite3_column_table_name'
collect2: error: ld returned 1 exit status
make[1]: *** [gdalinfo] 错误 1
make[1]: 离开目录“/usr/local/gdal/gdal-3.0.4/apps”
make: *** [apps-target] 错误 2
# 具体做法是在源码文件夹下
cd ./sqlite-autoconf-3320300
vim ./sqlite3.c
# 添加
#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 *******************************************/
# 然后再
./configure --prefix="/usr/local"
make && make install
配置环境变量
vi ~/.bashrc
export PATH=$PATH:/usr/local/bin
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib
验证是否安装成功
[root@eureka src]# gdalinfo --version
GDAL 3.0.4, released 2020/01/28
6、安装jdk/jre、ant
jdk安装不做介绍。
安装 ant
官网下载:http://ant.apache.org/
wget https://mirrors.tuna.tsinghua.edu.cn/apache//ant/binaries/apache-ant-1.10.10-bin.tar.gz
解压缩:
tar -zxvf apache-ant-1.10.10-bin.tar.gz
配置环境变量:
# 打开配置文件
vim /etc/profile
# 在文件最后添加ant环境
export ANT_HOME=/usr/local/src/apache-ant-1.10.10
# 并把ant环境添加到path中
export PATH=$PATH:$JAVA_HOME/bin:${ANT_HOME}/bin
# 刷新配置文件
source /etc/profile
# 测试
[root@eureka src]# ant -version
Apache Ant(TM) version 1.10.10 compiled on April 12 2021
7、编译并生成gdal.jar
# 使用 gdal 进行 java 的转换需修改 swig 对应的文件
# 修改文件:gdal 根目录 /swig/java/java.opt,添加 JAVA_HOME 的值为 java 的根目录。
vim /home/gdal/gdal-3.0.0/swig/java/java.opt
# 文件最后 添加
JAVA_HOME=/opt/jdk1.8.0_291
# 在路径:gdal根目录/swig/java中执行
make && make install
# 把gdal根目录/swig/java中生成的gdal.jar文件复制到$JAVA_HOME/jre/lib/ext下
cp gdal.jar /opt/jdk1.8.0_291/jre/lib/ext/
# 把.so、.lo、.o、.la、*.a复制到自己方便的文件夹下,一般是$JAVA_HOME/jre/lib/amd64/server
cp *.so *.lo *.o *.la *.a /opt/jdk1.8.0_291/jre/lib/amd64/server
# vim /etc/profile 然后在/etc/profile中添加
export LD_LIBRARY_PATH=.:$JAVA_HOME/jre/lib/amd64/server
# 最后
source /etc/profile
注意:可能遇见的问题
jni.h: No such file or directory(C++编译无法找到jni.h)
解决办法:修改/etc/profile,添加 :
export CPATH=$CPATH:$JAVA_HOME/include:$JAVA_HOME/include/linux
export C_INCLUDE_PATH=$C_INCLUDE_PATH:$JAVA_HOME/include:$JAVA_HOME/include/linux
export CPLUS_INCLUDE_PATH=$CPLUS_INCLUDE_PATH:$JAVA_HOME/include:$JAVA_HOME/include/linux
8、配置环境
export PATH USER LOGNAME MAIL HOSTNAME HISTSIZE HISTCONTROL
export JAVA_HOME=/opt/jdk1.8.0_291
export ANT_HOME=/usr/local/src/apache-ant-1.10.10
export CLASSPATH=.:$JAVA_HOME/jre/lib/rt.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export PATH=$PATH:$JAVA_HOME/bin:${ANT_HOME}/bin
export CPATH=$CPATH:$JAVA_HOME/include:$JAVA_HOME/include/linux
export C_INCLUDE_PATH=$C_INCLUDE_PATH:$JAVA_HOME/include:$JAVA_HOME/include/linux
export CPLUS_INCLUDE_PATH=$CPLUS_INCLUDE_PATH:$JAVA_HOME/include:$JAVA_HOME/include/linux
export LD_LIBRARY_PATH=.:$JAVA_HOME/jre/lib/amd64/server