首页 / C# / GDAL2.2.4 C#中的编译及使用
GDAL2.2.4 C#中的编译及使用
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了GDAL2.2.4 C#中的编译及使用,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含3649字,纯文字阅读大概需要6分钟。
内容图文
![GDAL2.2.4 C#中的编译及使用](/upload/InfoBanner/zyjiaocheng/639/ec1d39976b4c40e38f281fb3a5b2cb71.jpg)
GDAL库是一个跨平台的栅格地理数据格式库,包括读取、写入、转换、处理各种栅格数据格式(有些特定的格式对一些操作如写入等不支持)。它使用了一个单一的抽象数据模型就支持了大多数的栅格数据。
GDAL使用C++,在Visual studio环境下开发,对C,C++的支持当然不会有什么问题。但对于C#、Python、Java来说,过程就相对繁琐一些,对初学者造成了不少的麻烦。本文以GDAL2.2.4为例,详细说明在CSharpe语言中使用GDAL的环境配置问题。
(1)下载gdal224.zip(或者gdal-2.2.4.tar.gz)源码。下载地址:https://trac.osgeo.org/gdal/wiki/DownloadSource,下载解压后放在本地。
(2)不同的gdal对应的swigwin的版本不同,打开解压后的gdal-1.11.1\swig\csharp\gdal目录下的GdalPINVOKE.cs文件,在文件开头找到对应的swig版本,我下载的是swigwin-2.0.12版本,下载地址:https://sourceforge.net/projects/swig/files/swigwin/,下载解压后放在本地。
(3)修改nmake.opt文件
创建安装的目标文件夹“F:\gdal\gdal-run”,稍后的编译配置中,我们将配置GDAL把编译后将会安装到这个文件夹内。
修改编译配置文件夹“F:\gdal\gdal-2.2.4\nmake.opt”。以下是第41至第43行的内容:
!IFNDEF GDAL_HOME
GDAL_HOME = "C:\warmerda\bld"
!ENDIF
默认的情况下,GDAL将会安装到"C:\warmerda\bld"文件夹内,为了更好地了解安装过程,我们把第42行修改成如下内容:
GDAL_HOME = "F:\gdal\gdal-run"
设置swig的文件路径,nmake.opt文件中为:
SWIG =swig.exe
将SWIG修改为下载的swigwin-2.0.12绝对文件名,例如:
SWIG=F:\gdal\swigwin-2.0.12\swig.exe
(4)使用“Visual Studio 2008 命令提示”工具来进行,(该工具位于“开始\程序\Microsoft Visual Studio 2008\Visual Studio Tools”内)。
打开“Visual Studio 2008 命令提示”工具
1.键入"cd F:\gdal\gdal-2.2.4",进入源文件所在的文件夹
2.依次执行:a) nmake /f makefile.vc //时间很长,耐心等待
b) nmake /f makefile.vc install //执行完毕后,F:\gdal\gdal-run文件夹下增加了bin,data,及html文件夹
c) nmake /f makefile.vc devinstall //执行完毕后,F:\gdal\gdal-run文件夹下增加了lib,include文件夹
这两个文件夹主要用于C及C++的开发。
在"F:\gdal\gdal-run\bin"文件夹内已经生成了gdal202.dll文件,这是GDAL库的核心,不管采用何种开发方式,最终都由这个DLL文件来执行实质性的操作。
(5)编译C#源文件
1.键入"F:\gdal\gdal-2.2.4\swig\csharp",切到gdal源码的swig/csharp目录下。
2.执行如下命令:nmake /f makefile.vc interface
3.等待执行完后,先不要编译,进入到swig/csharp目录下,修改如下生成的源码文件:
a)打开swig\csharp\gdal\GdalPINVOKE.cs文件 查找语句,大概位置都在188行
static GdalPINVOKE() {
}
会看到两个一样的语句,注释掉其中一个
b)打开swig\csharp\ogr\OgrPINVOKE.cs 查找语句
static OgrPINVOKE() {
}
注释掉其中一个
c)打开swig\csharp\ogr\OsrPINVOKE.cs 查找语句
static OsrPINVOKE() {
}
注释掉其中一个
d)打开swig\csharp\osr\OsrPINVOKE.cs 查找语句
static OsrPINVOKE() {
}
注释掉其中一个
4.然后分别打开如下三个文件,修改第17行
a)csharp\gdal\Band.cs文件:
public Band(IntPtr cPtr, bool cMemoryOwn, object parent) : base(GdalPINVOKE.Band_SWIGUpcast(cPtr), cMemoryOwn, parent)
b)csharp\gdal\Dataset.cs文件:
public Dataset(IntPtr cPtr, bool cMemoryOwn, object parent) : base(GdalPINVOKE.Dataset_SWIGUpcast(cPtr), cMemoryOwn, parent)
c)csharp\gdal\Driver.cs文件:
public Driver(IntPtr cPtr, bool cMemoryOwn, object parent) : base(GdalPINVOKE.Driver_SWIGUpcast(cPtr), cMemoryOwn, parent) {
5.完成修改后,切回到Visual Studio 2008 命令提示工具,切到gdal源码的swig/csharp目录下。
6.执行如下命令
a)nmake /f makefile.vc
b)nmake /f makefile.vc install
会把编译出来的8个dll复制到安装目录下的csharp目录下。
(7)在C#项目中,要将F:\gdal\gdal-run\bin目录下的gdal202.dll,连同在F:\gdal\gdal-2.2.4\swig\csharp目录生成的8个dll一起放到项目的Debug目录下
新建一个VS2008的项目,添加对中4个含有"csharp"的DLL文件的引用。至此我们就可以使用GDAL的功能了。
内容总结
以上是互联网集市为您收集整理的GDAL2.2.4 C#中的编译及使用全部内容,希望文章能够帮你解决GDAL2.2.4 C#中的编译及使用所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。