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库使用)。

你可能感兴趣的:(gdal,c++,visual,studio,图像处理)