IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> C++知识库 -> GDAL-3.4.0库 C++版编译 -> 正文阅读

[C++知识库]GDAL-3.4.0库 C++版编译

1.? GDAL介绍

????????来自百度https://baike.baidu.com/item/GDAL/4004525?fr=aladdin

????????GDAL(Geospatial Data Abstraction Library)是一个在X/MIT许可协议下的开源栅格空间数据转换库。它利用抽象数据模型来表达所支持的各种文件格式。它还有一系列命令行工具来进行数据转换和处理。

????????OGR是GDAL项目的一个分支,提供对矢量数据的支持。有很多著名的GIS类产品都使用了GDAL/OGR库,包括ESRI的ARCGIS 9.3,Google Earth和跨平台的GRASS GIS系统。利用GDAL/OGR库,可以使基于Linux的地理空间数据管理系统提供对矢量和栅格文件数据的支持。

2.? 编译过程中用到的文件

编译环境:操纵系统windows 10,编译器VS 2019 版本:16.11.8

GDAL-3.4.0 下载地址GitHub - OSGeo/gdal: GDAL is an open source X/MIT licensed translator library for raster and vector geospatial data formats.

??????? 用户自己编译GDAL-3.4.0需要先下载源代码,包括GEOS、PROJSQLITE的源代码,按下面顺序编译SQLITE、PROJ、GEOS,最后编译GDALGDAL-3.4.0编译要求投影库PROJ >= 6,而PROJ又要求SQLite3环境,所以在编译GDAL之前我们需要先编译好SQLite和PROJ。

????????SQLITE3.37.1 开源文件数据库,下载地址:https://www.sqlite.org/,版本:Version 3.37.1

???PROJ-8.2.1?投影和坐标系转换类库,下载地址: GitHub - OSGeo/PROJ: PROJ - Cartographic Projections and Coordinate Transformations Library

???GEOS-3.10.1矢量图形开源类库,下载地址:GitHub - libgeos/geos at 3.10.1

3.? 文件准备

? ??????通过github获得的开源类库都没有编译,需要自行编译,自己编译难度较大,编译过程中可能还会需要其他类库,比如编译PROJ时,还需要libtiff和curl。你也可以直接下载编译好的库文件,那就是使用Miniconda包管理器软件。Minicondaonda 是一个开源的软件包管理系统和环境管理系统,用于安装多个版本的软件包及其依赖关系,并在它们之间轻松切换。其安装程序中包含conda软件包管理器和Python。安装了Miniconda,就可以使用conda命令安装任何其他软件工具包并创建环境等。GDAL、GEOS、PROJ、SQLITE这些库都可以下载到。

????????(1)安装?miniconda下载地址:https://repo.anaconda.com/miniconda/Miniconda3-latest-Windows-x86_64.exe

????????(2)启动miniconda3命令行窗口。

????????(3)包安装命令conda install 包名

????????(4)找到下载目录查看下载好的类库

4.? GDAL编译

? ? ? ? (1)nmake.opt编译配置文件

????????我使用VS2019编译GDAL-3.4.0,编译版本windows x64,需要修改GDAL-3.4.0\nmake.opt编译配置文件,将MSVC_VER=1900修改为MSVC_VER=1929。如果你使用其他版本VS,参照下面各个版本Visual Studio MSVC 编译器版本:

  1. Visual Studio 2010 (10.0)???? 1600
  2. Visual Studio 2012 (11.0)???? 1700
  3. Visual Studio 2013 (12.0)???? 1800
  4. Visual Studio 2015 (14.0)???? 1900
  5. Visual Studio 2017 RTW (15.0)??? 1910
  6. Visual Studio 2017 version 15.3?? 1911
  7. Visual Studio 2017 version 15.5?? 1912
  8. Visual Studio 2017 version 15.6?? 1913
  9. Visual Studio 2017 version 15.7?? 1914
  10. Visual Studio 2017 version 15.8?? 1915
  11. Visual Studio 2017 version 15.9?? 1916
  12. Visual Studio 2019 RTW (16.0)??? 1920
  13. Visual Studio 2019 version 16.1?? 1921
  14. Visual Studio 2019 version 16.2?? 1922
  15. Visual Studio 2019 version 16.3?? 1923
  16. Visual Studio 2019 version 16.4?? 1924
  17. Visual Studio 2019 version 16.5?? 1925
  18. Visual Studio 2019 version 16.6?? 1926
  19. Visual Studio 2019 version 16.7?? 1927
  20. Visual Studio 2019 version 16.8, 16.9? 1928
  21. Visual Studio 2019 version 16.10, 16.11???? 1929

? ? 除了修改编译器外,还要配置SQLITE3、PROJ8、GEOS3的include和lib头文件和库目录,nmake.opt配置文件修改说明如下:

修改编译器,默认是VS2015

!IFNDEF MSVC_VER

#assume msvc VS2015.

MSVC_VER=1929

!ENDIF

编译后生产文件目录,默认"C:\warmerda\bld",可以不修改

!IFNDEF GDAL_HOME

GDAL_HOME = "C:\warmerda\bld"

!ENDIF

编译版本,默认编译出来是Release版本,如果编译debug版本需要修改DEBUG=1

# Set DEBUG=1 to create a debug build

!IFNDEF DEBUG

DEBUG=0

!IFNDEF POSTFIX

POSTFIX=

!ENDIF

编译64位,默认设置WIN64=YES

# Uncomment the following if you are building for 64-bit windows

# (x64). You'll need to have PATH, INCLUDE and LIB set up for 64-bit

# compiles.

WIN64=YES

# Capture WIN64=1 if specified in NMAKE command line

!IFDEF WIN64

WIN64=YES

!ENDIF

配置SQLITE3的include和library目录

# SQLite Libraries

SQLITE_INC=-IC:\miniconda3\pkgs\sqlite-3.37.0-h2bbff1b_0\Library\include

SQLITE_LIB=C:\miniconda3\pkgs\sqlite-3.37.0-h2bbff1b_0\Library\lib\sqlite3.lib

配置PROJ的include和library目录

# PROJ stuff (required dependency: PROJ >= 6)

PROJ_INCLUDE = -IC:\miniconda3\envs\proj\Library\include

# Note: add shell32.lib is needed starting with PROJ 7.0 in some circumstances

# for static linking. See https://github.com/OSGeo/gdal/issues/2488

# And ole32.lib also since PROJ 7.1 (see https://github.com/OSGeo/gdal/issues/2743)

PROJ_LIBRARY = C:\miniconda3\envs\proj\Library\lib\proj.lib

配置GEOS-3.10.1的目录,GEOS_DIR存储目录,GEOS_CFLAGS、GEOS_LIB头文件和lib文件路径

  • (2)? GDAL编译

????????使用cmd命令行编译,点击“开始菜单\所有程序\Microsoft Visual Studio 2019\下x64命令提示窗口,切换到GDAL的源代码目录后,依次敲入下面的命令行后回车,等待编译结束即可。

nmake -f makefile.vc

nmake -f makefile.vc install

nmake -f makefile.vc devinstall

nmake -f makefile.vc? ? 编译GDAL库。

nmake -f makefile.vc install? ? ? 编译GDAL库,并安装(这里安装的意思就是将生成的dll,exe等文件拷贝到C:\warmerda\bld目录)。

nmake -f makefile.vc devinstall? ? ?编译GDAL库,并安装开发者模式(安装的意思同上,开发者模式意思是将开发用的include文件夹中的头文件和lib文件一同拷贝到C:\warmerda\bld目录,此时会在C:\warmerda\bld目录中多出来两个文件夹,分别是include和lib,分别存放的是GDAL的头文件和lib文件,用于调用GDAL库使用)。

  C++知识库 最新文章
【C++】友元、嵌套类、异常、RTTI、类型转换
通讯录的思路与实现(C语言)
C++PrimerPlus 第七章 函数-C++的编程模块(
Problem C: 算法9-9~9-12:平衡二叉树的基本
MSVC C++ UTF-8编程
C++进阶 多态原理
简单string类c++实现
我的年度总结
【C语言】以深厚地基筑伟岸高楼-基础篇(六
c语言常见错误合集
上一篇文章      下一篇文章      查看所有文章
加:2022-01-04 13:14:05  更:2022-01-04 13:14:41 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 11:00:44-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码