# 编译GDAL ## 搭建编译环境 ```shell docker pull centos:centos7.5.1804 docker run -it -d --name centos75 centos:centos7.5.1804 docker exec -it centos75 bash ``` ## 编译 ```shell # 安装一些依赖库 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 ```