在 Ubuntu 编译 gdal 并实现 JAVA Binding
大约 1 分钟
0.前置条件:
1.安装一些基础依赖
sudo apt-get update
sudo apt-get install build-essential autoconf automake libtool pkg-config unzip ant swig libxml2-dev libgeos-dev libproj-dev libsqlite3-dev libtiff5-dev libjpeg-dev zlib1g-dev libpng-dev libgif-dev libjson-c-dev libcairo2-dev postgresql-server-dev-all sqlite3 libpq-dev
2. 安装 Proj
wget https://download.osgeo.org/proj/proj-6.3.2.tar.gz
tar xzf proj-6.3.2.tar.gz
cd proj-6.3.2
./configure
sudo make
sudo make install
3. 编译 gdal
# 获取GDAL源码
wget https://download.osgeo.org/gdal/3.5.3/gdal-3.5.3.tar.gz
tar xzf gdal-3.5.3.tar.gz
cd gdal-3.5.3
# 配置GDAL编译选项
./configure --with-java=/home/vbox/java/openlogic-openjdk-17.0.9+9-linux-x64 --with-proj=/usr/local
# 编译与安装
sudo make
sudo make install
# 测试安装完成
gdalinfo --version
4. 编译 Java Binding
cd gdal-3.5.3/swig/java/
编辑 java.opt 配置 JAVA_HOME 路径
JAVA_HOME = /home/vbox/java/openlogic-openjdk-17.0.9+9-linux-x64
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
- 编译
make
- 将当前位置设置进环境变量
export LD_LIBRARY_PATH=/home/vbox/gdal/gdal-3.5.3/swig/java/:$LD_LIBRARY_PATH
# 执行 `source /etc/profile `命令让刚才的修改生效
source /etc/profile
5. 一些常见问题
报错: error while loading shared libraries: libgdal.so.31: cannot open shared object file: No such file or directory
原因:make install 之后,安装的路径:/usr/local/ ,需要链接到 /usr/
sudo ln -s /usr/local/lib/libgdal.so.31 /usr/lib/libgdal.so.31
- 编译报错:uint8_t 未定义
修改代码:
+ #include <cstdint>
参考
2.通义千问