工作原因,需要使用gdal的.net2.0 x64版本,以前用过1.17.2的x86,所以觉得下载个版本编译下没有什么,没想到,步步是坑。
1、编译流程:
下载gdal1.17.2
下载swigwin
vs2010 : 打开-生成-配置管理器-修改活动解决方案平台X64
gdal目录下nmake.opt文件中 :swig=swig.exe 修改成下载的swigwin的目录
“#WIN64=YES" ,去掉#
"SYM_PREFIX=_",去掉_
打开Visual Studio x64兼容工具命令提示:在gdal目录下,依次执行
nmake /f makefile.vc
nmake /f makefile.vc install
nmake /f makefile.vc devinstall
再进入swig\csharp目录下,依次执行
nmake /f makefile.vc
nmake /f makefile.vc install
成功后在C:\warmerda\bld\csharp目录下8个dll,加上bin下的gdal.dll,一共9个就可以应用了。
遇到问题:
1、编译时候如何编译成framework2.0?如果用vs2010,会默认调用4.0下的csc进行编译,生成的是4.0框架下的dll,所以在命令提示行中输入:
SET PATH=C:\Windows\Microsoft.NET\Framework64\v2.0.50727;%path%
指定你的2.0的路径,然后再nmake,就生成2.0的x64版本。
2、中文路径问题?中文路径一直是很困扰人的,我刚开始用1.19.2编译,中文路径就是不行,都说注册前设置Gdal.SetConfigOption("GDAL_FILENAME_IS_UTF8", "NO");也许有的版本可以解决,但是我没有成功,后来用1.17.2,一样的编译,也没有任何设置,就支持了中文路径,所以个人猜想gdal的版本也会有一定影响。
主要还是本人能力有限,没有深入理解,暂时先这样了。