Linux系统编译GDAL库

操作系统:Ubuntu 20.04

官网下载GDAL及其依赖库最新版本:

gdal 3.3.2

proj 8.1.1

geos 3.9.1

sqlite-autoconf-3360000

官网说明:要构建 GDAL 3 或更高版本,您至少需要一个 C++11 兼容编译器,以及 PROJ 6 或更高版本。这只会为您提供一个缺少大量驱动程序的最小构建。有关其他可选依赖项,请参阅光栅驱动程序和矢量驱动程序页面。
因此,GDAL库最小依赖安装就是PROJ库。

编译安装PROJ

解压进入PROJ目录,执行命令,若提示权限不够加sudo

./configure && make && make install

编译问题解决:

./configure 提示 configure: error: Please install sqlite3 binary.

解决上述问题通过以下命令:

apt-get install  sqlite3 && apt-get install libsqlite3-dev

如果依然报错,采用源码安装,解压进入Sqlite目录,执行命令安装:

./configure && make && make install

./configure 提示 No package ‘libtiff-4’ found

apt-get install libtiff-dev

可能需要安装curl:

sudo apt-get install curl

编译并安装GEOS

解压进入GEOS目录,执行命令,若提示权限不够加sudo

./configure && make && make install

编译并安装GDAL

解压进入GDAL目录,执行命令,若提示权限不够加sudo

./configure && make && make install

提示:make时间很久

如果 ./configure 提示 configure: error: PROJ 6 symbols not found 改为使用以下命令:

./configure --with-proj=/usr/local

编译过程报错:

/gdal-3.1.1/.libs/libgdal.so: undefined reference to `sqlite3_column_origin_name'
/gdal-3.1.1/.libs/libgdal.so: undefined reference to `sqlite3_column_table_name'

具体做法是在源码文件夹下

cd ./sqlite-autoconf-3320300/sqlite3.c

添加#define SQLITE_ENABLE_COLUMN_METADATA 1这行代码

#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 *******************************************/

参考:https://www.cnblogs.com/xuanmanstein/p/13227545.html

按照默认位置安装成功后,会在/usr/local/include文件夹中产生一系列.h文件(cpl_config.h、gdal.h……),在/usr/local/lib文件夹中产生5个库文件,其中libgdal.a和libgdal.la为静态链接库,libgdal.so等为动态链接库。

配置环境变量

运行以下命令

vim ~/.bashrc#写入以下内容:
export PATH=$PATH:/usr/local/bin
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib

保存并退出后,执行以下命令更新变量:

source ~/.bashrc

验证是否安装成功

新建文件hello.cpp

#include <iostream>
#include "gdal.h"
using namespace std;int main() {cout << "Hello World!" << endl;return 0;
}

执行以下命令即可成功输出

g++ hello.cpp -lgdal -o hello    //c++编译,引用gdal库./hello

成功输出“hello world”

参考:https://www.jianshu.com/p/529588db4fec

https://www.jianshu.com/p/a51d54e0c75c

https://blog.csdn.net/wusanchui/article/details/108316437

https://juejin.cn/post/6875970706745196558

https://www.jianshu.com/p/0925a1ea6a8b

https://blog.csdn.net/gispipi/article/details/108140754

Linux系统编译安装GDAL库相关推荐

  1. linux如何编译boost指定库,linux下编译安装boost库

    linux下编译安装boost库 先看一下系统环境 Linux o-pc 3.19.0-22-generic #22-Ubuntu SMP Tue Jun 16 17:15:15 UTC 2015 x ...

  2. linux编译pcre生成动态链接库,Linux下编译安装PCRE库

    最近在学习nginx,nginx rewrite依赖于PCRE库,所以需要在linux系统中编译安装PCRE库.具体步骤如下: 1.下载PCRE包 首先去官网下载pcre的安装包 如果通过FTP的方式 ...

  3. linux系统编译安装mysql_Linux下编译安装MySQL

    获得以下所需的源代码包,并存放在/usr/local/src 与mysql相关:boost_1_59_0.tar.gz cmake-3.6.2.tar.gz mysql-5.7.16.tar.gz 安 ...

  4. linux 保存编译log,(转)Linux下编译安装log4cxx

    一个项目的服务器端在Linux平台下,用到了开源日志库log4cxx,这个库是apache项目的一个子库.功能很不错.下面记录下它的编译和安装过程. 第一步安装apr-1.3.8,顺序不能错,它必须首 ...

  5. linux php7.2编译安装,Linux下编译安装php7.2

    准备工作 所有操作需要在root用户下 安装路径: /usr/local/php 安装PHP 首先要安装如下依赖包 $ yum install -y gcc gcc-c++  make zlib zl ...

  6. dragon编译linux,在Linux系统中安装Alibaba Dragonwell8的方法

    本文介绍在Linux系统中安装Alibaba Dragonwell8的方法,包括更新方法.它是阿里巴巴自己的JDK,是OpenJDK的下游版本,完全开源.以下在Ubuntu 18.04上经过了测试,也 ...

  7. Q106:Linux系统下安装编译PBRT-V3

    106.0 引入 本人之前尝试过在windows系统中编译pbrt-v3,但是出现了很多错误.pbrt-v3的源代码中部分Linux的函数没有用宏包好,而是直接使用,所以在windows环境下就报错了 ...

  8. Linux系统的安装和Android编译环境的配置

    Linux系统的安装和Android编译环境的配置 亲测Android8.1-Android10.0可用 电脑硬件配置 安装Linux系统 配置Android编译环境 常见编译报错 亲测Android ...

  9. linux系统下的“静态库和动态库”专题之一:库的概念和规则

    什么是库 在windows平台和linux平台下都大量存在着库. 本质上来说库是一种可执行代码的二进制形式,可以被操作系统载入内存执行. 由于windows和linux的本质不同,因此二者的库也是不兼 ...

最新文章

  1. Python的Xpath介绍和语法详解
  2. edit filter rules in sql source control
  3. Shell的一些基本用法
  4. 用MapReduce实现矩阵乘法
  5. 6-3 两个有序链表序列的合并
  6. 51nod 1414 冰雕 思路:暴力模拟题
  7. 这辆迷你摩托车,很酷!
  8. java商城_基于Java,jfinal web框架开发出微信商城,微信分销商城源码分享
  9. mysql命令实践_MySQL:常用命令行
  10. Selenium WebDriver的工作原理
  11. 如何在分屏浏览中并排使用两个Mac软件界面
  12. paip.c++ qt creator svn 设置以及使用总结.
  13. 阿里云云计算 34 RDS的概念
  14. SpringBoot实现导入功能
  15. 南方cass快捷键命令修改在哪_南方CASS操作快捷命令
  16. windows如何解压tar.gz文件
  17. Ubuntu下pycharm设定任务栏图标后打开出现问号图标
  18. 密码学-常见加密算法逆向学习
  19. javaweb-一个投票网页
  20. ictclas4j java_ictclas4j 分词工具包 安装流程

热门文章

  1. iMX6ULL启动流程
  2. 【Echarts】折线图/趋势图区间框选计算
  3. learn opengl 笔记 1.2
  4. 累计薅走数百万,EOS Dapps已成黑客提款机?
  5. WhyNotWin11(win11升级检测工具)绿色便携版V2.1.0.0下载 | 比微软PC Health Check好用
  6. 关于嵌入式驱动开发,这篇文章让你了解透彻!
  7. WinDbg命令详解--执行
  8. 机器学习和深度学习相关问题总结
  9. Android应用内换肤
  10. MAE代码阅读(一)