Linux系统编译安装GDAL库
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库相关推荐
- 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 ...
- linux编译pcre生成动态链接库,Linux下编译安装PCRE库
最近在学习nginx,nginx rewrite依赖于PCRE库,所以需要在linux系统中编译安装PCRE库.具体步骤如下: 1.下载PCRE包 首先去官网下载pcre的安装包 如果通过FTP的方式 ...
- 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 安 ...
- linux 保存编译log,(转)Linux下编译安装log4cxx
一个项目的服务器端在Linux平台下,用到了开源日志库log4cxx,这个库是apache项目的一个子库.功能很不错.下面记录下它的编译和安装过程. 第一步安装apr-1.3.8,顺序不能错,它必须首 ...
- linux php7.2编译安装,Linux下编译安装php7.2
准备工作 所有操作需要在root用户下 安装路径: /usr/local/php 安装PHP 首先要安装如下依赖包 $ yum install -y gcc gcc-c++ make zlib zl ...
- dragon编译linux,在Linux系统中安装Alibaba Dragonwell8的方法
本文介绍在Linux系统中安装Alibaba Dragonwell8的方法,包括更新方法.它是阿里巴巴自己的JDK,是OpenJDK的下游版本,完全开源.以下在Ubuntu 18.04上经过了测试,也 ...
- Q106:Linux系统下安装编译PBRT-V3
106.0 引入 本人之前尝试过在windows系统中编译pbrt-v3,但是出现了很多错误.pbrt-v3的源代码中部分Linux的函数没有用宏包好,而是直接使用,所以在windows环境下就报错了 ...
- Linux系统的安装和Android编译环境的配置
Linux系统的安装和Android编译环境的配置 亲测Android8.1-Android10.0可用 电脑硬件配置 安装Linux系统 配置Android编译环境 常见编译报错 亲测Android ...
- linux系统下的“静态库和动态库”专题之一:库的概念和规则
什么是库 在windows平台和linux平台下都大量存在着库. 本质上来说库是一种可执行代码的二进制形式,可以被操作系统载入内存执行. 由于windows和linux的本质不同,因此二者的库也是不兼 ...
最新文章
- Python的Xpath介绍和语法详解
- edit filter rules in sql source control
- Shell的一些基本用法
- 用MapReduce实现矩阵乘法
- 6-3 两个有序链表序列的合并
- 51nod 1414 冰雕 思路:暴力模拟题
- 这辆迷你摩托车,很酷!
- java商城_基于Java,jfinal web框架开发出微信商城,微信分销商城源码分享
- mysql命令实践_MySQL:常用命令行
- Selenium WebDriver的工作原理
- 如何在分屏浏览中并排使用两个Mac软件界面
- paip.c++ qt creator svn 设置以及使用总结.
- 阿里云云计算 34 RDS的概念
- SpringBoot实现导入功能
- 南方cass快捷键命令修改在哪_南方CASS操作快捷命令
- windows如何解压tar.gz文件
- Ubuntu下pycharm设定任务栏图标后打开出现问号图标
- 密码学-常见加密算法逆向学习
- javaweb-一个投票网页
- ictclas4j java_ictclas4j 分词工具包 安装流程