notebook/build_gdal.md

1.6 KiB

编译GDAL

搭建编译环境

docker pull centos:centos7.5.1804
docker run -it -d --name centos75 centos:centos7.5.1804
docker exec -it centos75 bash

编译

# 安装一些依赖库
yum install gcc gcc-c++ make libtiff libtiff-devel curl libcurl-devel java-1.8.0-openjdk java-1.8.0-openjdk-devel libtool ant swig

# 解压
tar -zxvf gdal-3.2.1.tar.gz
tar -zxvf proj-7.2.1.tar.gz
tar -zxvf sqlite-autoconf-3360000.tar.gz

# 编译安装sqlite3
cd sqlite-autoconf-3360000
./configure --prefix=/usr/local/sqlite3
make && make install
# 配置 PKG_CONFIG_PATH 环境变量 否则编译proj找不到sqlite3
export PKG_CONFIG_PATH=/usr/local/sqlite3/lib/pkgconfig/:$PKG_CONFIG_PATH

# 编译安装proj
cd ../proj-7.2.1
./configure --prefix=/usr/local/proj-7.2.1
make && make install
export PKG_CONFIG_PATH=/usr/local/proj-7.2.1/lib/pkgconfig/:$PKG_CONFIG_PATH

# 编译安装gdal
cd ../gdal-3.2.1
./configure --prefix=/usr/local/gdal-3.2.1 --with-java=/usr/lib/jvm/java/ --with-proj=/usr/local/proj-7.2.1/ --with-sqlite3=/usr/local/sqlite3
make && make install
# make 失败提示找不到 /usr/local/lib/libsqlite3.la 将 /usr/local/sqlite3/lib/libsqlite3.la 拷贝过去即可。然后执行 make clean 后再重新编译。

# 修改java.opt文件中的 'JAVA_HOME' 变量为系统配置 此例为 /usr/lib/jvm/java/
cd swig/java
vi java.opt
# 编译java用到的一些包
make && make install
cp .lib/*.so /usr/local/lib/
cp gdal.jar $JAVA_HOME/jre/lib/ext/

# 压缩生成文件以便于迁移
cd /usr/local/
tar -zcvf gdal-3.2.1.tar.gz gdal-3.2.1
tar -zcvf proj-7.2.1.tar.gz proj-7.2.1
tar -zcvf sqlite3.tar.gz sqlite3