云题海 - 专业文章范例文档资料分享平台

当前位置:首页 > CSharp编译GDAL总结(本人亲自编译总结-编译正常可用)

CSharp编译GDAL总结(本人亲自编译总结-编译正常可用)

  • 62 次阅读
  • 3 次下载
  • 2025/6/17 12:56:06

如何在CSharp中使用GDAL

许多人觉得CSharp下编译GDAL存在较多疑问,编译时出现很多问题。经过多次测试,发现其实并不麻烦,现总结如下,供大家借鉴.

GDAL库的简洁、高效深受开发人员的喜爱,很多开源的GIS软件甚至是商业GIS软件都使用了这个库。GDAL使用C++,在Visual studio环境下开发,对C,C++的支持当然不会有什么问题。但对于C#、Python、Java来说,过程就相对繁琐一些,对初学者造成了不少的麻烦。本文以GDAL1.50为例,详细说明在CSharpe语言中使用GDAL的环境配置问题,至于Python的环境配置问题,在另一篇文章“如何在 CSharpe中使用GDAL”中另行讨论。希望对初用GDAL的人员有所帮助。 基于VS下安装:

GDAL从1.4.1开始添加了swig,以支持.NET环境下的C#语言。在swig文件夹中包含了C#源代码。以下是主要的处理步骤:

第一步:VS命令提示符或者cmd下安装。(和在安装VC版的一样操作)

(1)下载gdal的安装文件,http://download.osgeo.org/gdal/gdal142.zip,解压到某目录下

,如C:\\gdalsrc下。

这里我们假定VC6的安装在默认目录C:\\Program Files\\Microsoft Visual Studio8下。 (2)启动cmd,即打开控制台窗口。进入VC6的安装目录下,如cd C:\\Program Files\\Microsoft

Visual Studio8\\VC\\bin\\,在此目录下有个文件VCVARS32.BAT,执行一下这个文件,然后重新回

到C:\\gdalsrc下。运行命令nmake /f makefile.vc。编译完成后,用记事本打开文件 C:\\gdalsrc\\nmake.opt,根据自己的情况修改GDAL_HOME = 这一行,这个指的是最终GDAL的安装

目录,比如说我们安装在C:\\GDAL,那么这一行就是GDAL_HOME = \,在C:\\gdalsrc下执

行nmake /f makefile.vc install,然后是nmake /f makefile.vc devinstall,然后我们需要

的东西就安装到了C:\\GDAL下。 第二步:编译生成Csharp的dll

在解压的安装包中有swig文件夹 键入“cd C:\\gdal-1.5.0\\swig\\csharp”,进入C#源文件所在的文件夹。

键入“nmake /f makefile.vc”,编译完毕后生成8个DLL文件:gdal_csharp.dll、gdalconst_csharp.dll、 ogr_csharp.dll、osr_csharp.dll和gdal_wrap.dll、gdalconst_wrap.dll、 ogr_wrap.dll、osr_wrap.dll。前面4个文件名中都含有\用法与另外4个稍有不同,稍后详细讨论。

10、把8个DLL文件复制到安装文件夹\。

11、创建环境变量。

把路径C:\\gdal-runtime\\bin添加到系统变量Path,如果没有该变量,则应新建一个。如果你使用的是windows2003,添加后不必重启,修改即时生效;如果你不能确定是否已经生效,可以在doc窗口内输入“echo %path%”,如果显示的内容中包含了\,则表示修改已经生效。如果你还是无法确定,那就重启吧,这是最安全的方式。

12、在VS2005 CSharp项目中添加对GDAL的引用。新建一个CShapr应用程序项目,然后添加对C:\\gdal-runtime\\bin中4个含有\的DLL文件的引用。至此我们就可以使用GDAL的功能了。为了测试GDAL是否可以运行,我们为窗体的Load事件增加如下的代码:

private void Form1_Load(object sender, EventArgs e) { try {

OSGeo.GDAL.Gdal.AllRegister(); OSGeo.GDAL.Dataset dataSet Access.GA_ReadOnly); int w = dataSet.RasterXSize; int h = dataSet.RasterYSize;

MessageBox.Show(\}

catch (Exception err) {

Console.WriteLine(err.Message); }

}为了运行程序,Open方法的第一个参数@\应改成你本机上图像文件所在的路径。如果运行正常的话将弹出一个对话框,显示图像的宽度和高度。

关于其它一些问题的讨论:

1、关于GDAL_DATA系统变量。GDAL建议创建这个系统变量,从上面的讨论中,我们已经知道,这个系统变量并非必须的,但是如果你想使用一些GDAL提供的例子,那就很有必要,因为样例中的某些方法需要访问这个系统变量。

2、我们已经提到过,创建安装文件夹并非必须的;如果使用默认的方式来编译,将安装到C:\\warmerda\\bld文件夹内。无论使用何种方式,要想使用GDAL,你的C#程序必须能访问到这些DLL文件:包括上面提到的8个DLL文件,以及C:\\gdal-runtime\\bin \\gdal15.dll文件。我们可以用一句话来概括:C#环境下使用GDAL的问题核心,实质上就是如何保证C#程序能够访问到这9个DLL文件。

在此,我们回顾一下Windows搜索DLL文件的基本规则:

=

OSGeo.GDAL.Gdal.Open(@\

1)执行文件所在的文件夹。

2)windows系统安装文件夹,即安装了windows的文件夹,GetWindowsDirectory( )函数可提供该目录的路径名。

3)Windows系统目录,即System32子目录;调用GetSystemDiretory( )函数可获得这个目录的路径名。

4)在系统变量Path中配置的文件夹,或用dos的path命令指定的文件夹。

5)网络中映象的目录列表中的全部目录。

在需要调用DLL文件时,windows将按以上的顺序,逐一查找各个文件夹,如果找不到相应的文件,将返回异常信息。

根据以上的规则,系统变量path中不必包含GDAL的安装路径,我们只要把这9个DLL文件复制到执行文件所有的位置,同样可以运行。例如把文件复制到 bin/debug或bin/release文件夹内,这样程序的运行就不再依赖于任何系统变量了。这种方式非常适合于发布和打包最终的应用程序。在程序开发期间,我们仍然提倡使用系统变量指向GDAL安装路径的方式,开发时将更加有灵活性。

  • 收藏
  • 违规举报
  • 版权认领
下载文档10.00 元 加入VIP免费下载
推荐下载
本文作者:...

共分享92篇相关文档

文档简介:

如何在CSharp中使用GDAL 许多人觉得CSharp下编译GDAL存在较多疑问,编译时出现很多问题。经过多次测试,发现其实并不麻烦,现总结如下,供大家借鉴. GDAL库的简洁、高效深受开发人员的喜爱,很多开源的GIS软件甚至是商业GIS软件都使用了这个库。GDAL使用C++,在Visual studio环境下开发,对C,C++的支持当然不会有什么问题。但对于C#、Python、Java来说,过程就相对繁琐一些,对初学者造成了不少的麻烦。本文以GDAL1.50为例,详细说明在CSharpe语言中使用GDAL的环境配置问题,至于Python的环境配置问题,在另一篇文章“如何在 CSharpe中使用GDAL”中另行讨论。希望对初用GDAL的人员有所帮助。 基于VS下安装: GDAL从1.4.1开始添加了swig,以支持.NET环境

× 游客快捷下载通道(下载后可以自由复制和排版)
单篇付费下载
限时特价:10 元/份 原价:20元
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信:fanwen365 QQ:370150219
Copyright © 云题海 All Rights Reserved. 苏ICP备16052595号-3 网站地图 客服QQ:370150219 邮箱:370150219@qq.com