转自阿FaiGDAL源码编译

在这里,我使用源码编译出C#可以使用的dll静态文件。

一、简单的编译

1、简单的认识

首先进入GDAL的源代码目录,可以看到有几个sln为后缀的文件名,比如makegdal10.sln,makegdal80.sln,makegdal71.sln,makegdal90.sln 。这些文件是VisualStudio的工程文件,后面的数字对应的VS的版本号,71表示的VS2003,80表示VS2005,90表示VS2008,还有10表示VS2010等。根据自己电脑安装的VS版本,打开对应的文件,如下图所示(使用VS2008SP1版本,打开makegdal90.sln文件):

2、使用cmd命令行编译

在操作之前,需要说明点的是,gdal源码在至少1.7.0版本之前都出现的错误

修改Gdal中的bug,Source Files\leveller\levellerdataset.cpp文件171行

{ “?, kPI / 180.0, UNITLABEL_DEGREE },将“ “? ”修改为“ ”? “ ”,保存;

1.9.0不存在这样的毛病。

1)使用cmd命令行编译,首先在“开始菜单\所有程序\Microsoft Visual Studio 2008\Visual
Studio Tools\ Visual Studio 2008命令提示”,点击“Visual Studio 2008
命令提示”会弹出下面的界面:

2)然后使用cd命令,切换到GDAL的源代码目录,如下图所示:

3)切换到GDAL的源代码目录后,依次敲入下面的命令行后回车,等待编译结束即可。

nmake -f makefile.vc

nmake -f makefile.vc install

nmake -f makefile.vc devinstall

同时还有其他的命令,如:

nmake -f makefile.vc clean

nmake -f makefile.vc MSVC_VER=1400clean

nmake -f makefile.vc MSVC_VER=1400DEBUG=1

这三条命令可以不用管。

上面六行的命令含义依次是:

编译GDAL库

编译GDAL库,并安装(这里安装的意思就是将生成的dll,exe等文件拷贝到C:\warmerda\bld目录),

编译GDAL库,并安装开发者模式(安装的意思同上,开发者模式意思是将开发用的include文件夹中的头文件和lib文件一同拷贝到C:\warmerda\bld目录,此时会在C:\warmerda\bld目录中多出来两个文件夹,分别是include和lib,分别存放的是GDAL的头文件和lib文件,用于调用GDAL库使用)。

清理GDAL库,同时会删除编译GDAL库所生成的临时文件,作用相当于在VS环境中的清理命令。

作用同上,但是添加了一个MSVC_VER=1400,表示使用VS2005编译。

编译GDAL库的debug模式,可以用来调试GDAL源码。

4)在此之后

键入“cd C:\gdal-1.5.0\swig\csharp”,进入C#源文件所在的文件夹。当然,如果你文件夹位置不是这里,便需要更换地址。

键入“nmake /f makefile.vc”,编译完后生成8个DLL文件,连同之前在c盘会生成warmerda\bld\bin里面也能找到一个DLL共九个。

至此,九个DLL便全部出现。

最新文章

  1. DotNetBar for Windows Forms 12.2.0.7_冰河之刃重打包版原创发布-带官方示例程序版
  2. 使用Struts 拦截namespace进行权限控制
  3. 在Spring-Mybatis-Restful中配置多数据源的properties文件
  4. iOS - Mac OS X 终端设置
  5. http://blog.csdn.net/congcong68/article/details/39252897
  6. xp系统的安装SVN
  7. 将inline、template声明和定义在头文件中
  8. ArcGIS Runtime SDK for WPF已不更新,后续将被ArcGIS Runtime SDK for .NET取代
  9. SGU 246. Black & White(数论)
  10. pycharm+QT4的helloworld
  11. 基于 Hexo + GitHub Pages 搭建个人博客(三)
  12. Do Now 一个让你静心学习的APP——团队博客
  13. 【原创】XAF常用属性字段设置
  14. 20165223 week3蓝墨云测试总结
  15. vue中的jsx
  16. 框架源码系列三:手写Spring AOP(AOP分析、AOP概念学习、切面实现、织入实现)
  17. mysql order by 多个字段排序
  18. Python3 - MySQL适配器 PyMySQL
  19. python中赋值-浅拷贝-深拷贝之间的关系
  20. Java中如何读写cookie (二)

热门文章

  1. Android下多彩的StatusView的实现
  2. quazip非静态成员。。错误
  3. leetcode_712. Minimum ASCII Delete Sum for Two Strings
  4. scrapy增加爬取效率
  5. TCP/IP 协议分层
  6. CAD交互绘制圆(com接口)
  7. element-UI el-table添加序号列时序号永远都是从1开始?
  8. wdcp 打开网页显示 Apache 2 Test Page powered by CentOS -- 来自辉哥博客
  9. Spring Data Redis入门示例:基于Jedis及底层API (二)
  10. MySQL 日志初探