c语言编译gdal,基于 VS 2017 编译 C/C++ 与 C# 均可用的 GDAL + Proj4

本文详细介绍了如何使用Visual Studio 2017在Windows环境下编译GDAL 2.2.0及集成Proj4 5.2.0,以创建C#应用程序可使用的DLL文件。编译过程分为4个准备阶段和3个编译阶段,涉及下载源码、修改配置文件、解决C#源码错误等问题。最终,通过编译,得到C#程序所需的10个DLL文件,实现了C#与GDAL的无缝连接。
摘要由CSDN通过智能技术生成

GISer们在实际学习与研究中经常会遇到这样一个需求:基于C#开发程序界面(WinForm或者WPF),使用GDAL来实现读写GroTiff、地理空间信息获取、地理坐标系转换、地图投影定义等功能。要想达到这一步,就必须首先打通C/C++编写的GDAL与C#语言之间的连接通道,也即不仅要将GDAL的C/C+源代码编译为应用程序扩展(.DLL)文件,同时还需将Proj4的功能集成到GDAL中一起编译。本文中,小编将整个编译过程分为“4个准备工作阶段”+“3个编译阶段”+“1个应用示例阶段”,向大家讲解如何使用Visual Studio 2017来实现这一目标。

小编的编译结果

如下图,图1为编译好的GDAL目录,默认编译到"C:\warmerda\bld"目录下,图2为C#程序所需的GDAL引用,共10个DLL文件。当然这10个DLL文件不是默认就是这样位于某个目录的,而是小编经将默认位于下文将讲到的proj-5.0.2\src目录下的proj.dll,上文所说的"C:\warmerda\bld\bin"下的gdal202.dll以及位于"C:\warmerda\bld\csharp"的8个DLL程序复制到了您当前所看到的目录。

c9e601a67f1159d6f7b8ddfbdcefedef.png

5ccfb4f9362e2cb4d4fa626f8b400197.png

准备工作——下载源码与程序

下载GDAL源码

小编这里下载的是GDAL2.2.0版本,当然你也可以从网址:https://trac.osgeo.org/gdal/wiki/DownloadSource下载其他版本,小编一开是下载的是最新版本2.3.1,但是发现在./swig/gdal、./swig/ogr、./swig/osr等目录下缺少很多C#源码文件(*.cs)(其实这可能是需要你自行编译),这会导致后边只能编译C/C++可用的GDAL,而无法编译C#版本的GDAL。

39b270cfcff2acdda97eb0e3278faab2.png

下载Proj4源码

从网址https://proj4.org/download.html下载tar.gz压缩格式的Proj4源码文件,小编这里下载的是最新版5.2.0版本。若是进入官网首页https://proj4.org,则点击左侧的“Download”链接即可进入下载页面。

6877fff73eb0bc1847c31c3cb3fcc0d7.png

下载swig程序

从网址http://www.swig.org/download.html下载swig程序的压缩文件(解压即可使用),小编这里下载的是3.0.12。若是进入swig官网首页http://www.swig.org/,则点击左侧的“Download”链接,然后在加载出来的页面http://www.swig.org/survey.html依次勾选“C#”和“Windows”,然后点击Submit,在加载出来的页面https://oligarchy.co.uk/swigsurveyresponse.cgi点击“Download area”即可进入最终的下载页面http://www.swig.org/download.html

9adb85dbeb14f779bc8a5c1e2c284fa0.png

准备工作——解压源码文件与程序

如下图,您需要将下载的GDAL源码文件、Proj4源码文件和Swig程序文件都解压到一个您自己新建的目录里( 稍微注意下小编这里对GDAL解压的目录处理 )。具体的步骤和所需下载的文件版本,请务必详细阅看下文。(这里, 小编在桌面上新建了一个名为“compile_gdal_csharp2”文件夹,然后,将所需的文件都解压到了里面 ,最终的目录结构如下。)

08b4370a30860dd596dbb06b51759df9.png

准备工作——修改nmakep.opt文件 中的4个地方

打开gdal2.2.0根目录下的nmake.opt文件(可使用记事本、vs code、notepad++等软件),需要修改的4个

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值