Ubantu安装GDAL+GEOS+PROJ

392 阅读3分钟

基础环境

ubantu20.04

Geos 3.10.6

Proj 9.3.1

Gdal 3.8.3

安装g++

apt update
apt install g++

安装cmake

apt update
apt install cmake

GEOS 3.10.6安装

下载

  • 下载命令
wget https://download.osgeo.org/geos/geos-3.10.6.tar.bz2

解压

  • 将文件上传至使用目录(案例使用/resource 目录)
cd /resource
tar -xvf geos-3.10.6.tar.bz2

编译安装

  • 进入解压包的位置,并编译
cd geos-3.10.6
#编译
./configure
#完成后,且末尾没有红色报错,执行
make
#末尾没有红色报错,执行
sudo make install

测试

geos-config --version

PROJ安装

下载

  • 下载命令
wget https://download.osgeo.org/proj/proj-9.3.1.tar.gz

解压

  • 将文件上传至使用目录(案例使用/resource 目录)
cd /resource
tar -zxvf proj-9.3.1.tar.gz

编译安装

  • 进入解压包的位置,并编译
cd proj-9.3.1/
sudo apt-get install sqlite3 libsqlite3-dev libtiff-dev libcurl4-openssl-dev
mkdir build
cd build
cmake .. #运行 CMake 配置
make    #运行 make 构建项目
sudo make install #安装项目

问题

问题一

问题 在执行cmake时,如果遇到报错

解决
  • 这些错误提示表明在配置项目时,CMake 无法找到 sqlite3 和 TIFF 库。您需要安装这些依赖项以继续构建项目
安装 SQLite3
sudo apt-get install sqlite3 libsqlite3-dev
安装 libtiff
sudo apt-get install libtiff-dev
安装完成后执行
cd /resource/proj-9.3.1/build
cmake .. #重复上述步骤

问题二

问题:在执行cmake时,如果遇到报错

解决
  • 这个错误表明在配置项目时,CMake 无法找到 CURL 库。您需要安装 CURL 库的开发包以继续构建项目。
安装 CURL 库的开发包
sudo apt-get install libcurl4-openssl-dev
安装完成后执行
cd /resource/proj-9.3.1/build
cmake .. #重复上述步骤

问题三

  • 在执行cmake时,如果遇到报错

解决
 /resource/proj-9.3.1/build/googletest-download/googletest-prefix/src/release-1.11.0.zip

测试

proj

GDAL安装

下载

  • 下载命令
wget https://download.osgeo.org/gdal/3.8.3/gdal-3.8.3.tar.gz

解压

  • 将文件上传至使用目录(案例使用/resource 目录)
cd /resource
tar -zxvf gdal-3.8.3.tar.gz

编译安装

cd gdal-3.8.3/
mkdir build
cd build
cmake .. #运行 CMake 配置
make    #运行 make 构建项目
sudo make install #安装项目

问题

问题一

问题 在执行cmake时,如果遇到报错
  • 这个错误表明在配置 GDAL 时,CMake 无法找到一些必需的依赖项。

解决
安装EXPAT 和 XercesC 依赖项
sudo apt-get install libexpat-dev libxerces-c-dev
安装OpenSSL 依赖项:
sudo apt-get install libssl-dev
安装Crypto++ 依赖项
sudo apt-get install libcrypto++-dev
安装PROJ 依赖项(可选)
sudo apt-get install libproj-dev

问题二

问题:执行gdalinfo --version时报错
  • 这个错误表明系统无法找到 libgdal.so.34 共享库文件

解决
设置 LD_LIBRARY_PATH
export LD_LIBRARY_PATH=/resource/gdal-3.8.3/build/lib:$LD_LIBRARY_PATH
设置动态链接器缓存
sudo ldconfig

测试

gdalinfo --version

运行Test文件(可选)

./Test runlinux.txt

运行结果

问题

问题一:

  • 所使用的操作系统是Ubuntu 20.04,该系统下GLIBC的版本最高只到2.30,app需要更高的版本

解决办法:
  • 在操作系统的apt源文件中添加高版本的源
vi /etc/apt/sources.list
  • 末尾添加保存
deb http://th.archive.ubuntu.com/ubuntu jammy main
  • 执行
apt update; apt install -y libc6

问题二:

  • /usr/lib/x86_64-linux-gnu/libstdc++.so.6: version `GLIBCXX_3.4.29‘ not found

解决方法
下载所需lib版本并建立软连接 (前提,获得sudo权限)
移除现有软连接
sudo rm /usr/lib/x86_64-linux-gnu/libstdc++.so.6
将下载的软连接cd到下载路径下再执行
sudo mv libstdc++.so.6.0.29 /usr/lib/x86_64-linux-gnu/
重新建立软连接
sudo ln -s /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.29 /usr/lib/x86_64-linux-gnu/libstdc++.so.6