VS2017编译最新版GDAL3.2及其最新版依赖库

一堆的源码

GDAL3.2.0

GDAL官方网站

PROJ7.2.0

PROJ官方网站

Sqlite3.3

sqlite3官方网站
sqlite3主要是下载这两个压缩包:
sqlite3源码下载的两个文件

GEOS3.8.1

GEOS官方网站

TIFF4.1.0

TIFF官方网站

CURL7.73.0

CURL官方网站

辅助工具

cmake

cmake是windows下很强的一个编译工具。其下载地址如下:cmake下载地址

everything

everything这个软件主要是为了搜索一些Windows链接库,这是:Everything下载链接

notepad++

notepad++则主要是为了修改一些文件里面的东西,这里就不贴链接了,网上随便下。

准备工作

编译Sqlite3

VS2017新建一个空项目,名为sqlite3,叫别的名字也行。项目添加现有项,选择sqlite3的源码,如下图所示:
在这里插入图片描述
sqlite3的编译,需要编译几个东西:

  1. 编译lib库,Debug和Release版本都要;
  2. 编译.exe的可执行文件,需要的话debug和release版本;
  3. 编译.dll库,这个需要添加那个sqlite3.def文件。

项目中修改编译的类型的就再项目属性界面的红框处修改,上面每一个都要编译一次。
编译完了之后,新建一个sqlite3的文件夹(任何你想放的地方),在这个文件夹下新建bin、lib、include三个文件夹,将编译生成的.exe和.dll复制到新文件夹的bin目录下,将sqlite3的源码复制到include文件夹下,将生成的.lib文件复制到lib文件夹下。

编译TIFF

下载tiff的源码并解压,打开cmake软件,将tiff源码目录下的cmakelist.txt文件拖到cmake中,如下:
在这里插入图片描述
选择了编译器之后,点击configure。这一步一般不会报错。然后修改以下项:
在这里插入图片描述
这一步的路径是你最后选择install之后,lib库等的安装位置。cmake_install_prefix就是cmake的安装前缀,即安装路径。
修改了之后点击generate按钮,会生成相应的项目解决方案。如下所示:
在这里插入图片描述
选择用VS2017打开tiff.sln,然后进行如下两步:

  1. 先AllBuild,debug和release
    在这里插入图片描述

  2. 再安装(install),debug和release。(这一步就是吧生成的库安装到你再cmake中选择的cmkae_install_prefix的那个目录下)
    在这里插入图片描述

编译CURL

CURL的编译跟tiff的编译一模一样,这里不多说。

编译PROJ

proj的编译,需要添加sqlite3的库,如下图所示:
在这里插入图片描述
修改上面几步。然后点击generate生成VS项目解决方案。
使用VS打开项目。

其他步骤和上面编译tiff的一样。但是有几点需要注意。

  1. test_network添加预处理器命令“WIN32_LEAN_AND_MEAN”
  2. 编译过程中提示的大部分问题,基本都是没有添加相应的库。

在vs项目的ALL_BUILD项目中,添加sqlite3的lib库的路径,添加curl的库路径。就在项目属性的库目录中添加即可。
这一步做完,先编译proj这个项目,再去编译ALL_BUILD,然后最后选择INSTALL生成。

编译GEOS

GEOS的源码目录中有cmakelist.txt文件,因此跟前面编译tiff一样。这里不多BB。

GDAL的编译

GDAL的编译比较复杂。

生成VS项目

命令提示符或者Windows power shell切换到GDAL的源码目录,然后运行如下命令:
在这里插入图片描述
命令如下:generate_vcxproj 15.0 64 gdal_vs2017,这个命令是源码自带的Windows批处理命令,用于生成vs的项目文件
命令结束之后,会在源码目录下生成以下文件:
在这里插入图片描述
.sln文件不是命令生成的。

修改nmake.opt文件

这个文件其实就是nmake命令的配置文件。其中有一些地方需要修改,如下面的几张图里面的内容:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
下面的内容很重要很重要
下面的内容很重要很重要
下面的内容很重要很重要
下面的内容很重要很重要
下面的内容很重要很重要
下面的内容很重要很重要
下面的内容很重要很重要
下面的内容很重要很重要
下面的内容很重要很重要
下面的内容很重要很重要
下面的内容很重要很重要
下面的内容很重要很重要
下面的内容很重要很重要
下面的内容很重要很重要
在这里插入图片描述

编译源码生成库

选择解决方案的批生成,勾选debug和release,这一步完了之后,只是构建结束。

install生成可执行文件

这一步是生成可执行文件,在VS的项目属性-nmake命令,修改如下:
在这里插入图片描述
注意,debug和release都要修改

devinstall生成目标库

修改命令如下:
在这里插入图片描述
同样,debug和release版本都要修改成这个命令

最后结果

就是生成gdal的静态库
在这里插入图片描述

结语

在编译这个鬼东西的时候,各种依赖库都缺,折腾了一个多星期才最终解决。如果你觉得有用,不妨点个赞。。。

猜你喜欢

转载自blog.csdn.net/GeomasterYi/article/details/109892171