摘要: VS2005编译GDAL1.4没有任何问题。只要运行下面命令即可: `nmake %pathtogdal%/makefile.vc` 加入Python支持的话,需要做如下修改: `gvim /f %pathtogdal%/nmake.opt 7 GDAL...
VS2005编译GDAL1.4没有任何问题。只要运行下面命令即可:
`nmake %pathtogdal%/makefile.vc`
加入Python支持的话,需要做如下修改:
`gvim /f %pathtogdal%/nmake.opt 7 GDAL_HOME = "D:/gistools/gdal"
这个不改也可以。
9 PY_INST_DIR = "C:/Python24/Lib/site-packages" 17 PYDIR = "c:/Python24'` 即可。
然后,还是:
nmake /f %pathtogdal%/makefile.vc nmake /f %pathtogdal%/makefile.vc
install nmake /f %pathtogdal%/makefile.vc devinstall
Python遇到的问题
这样编译的结果,C++的使用起来没有什么问题,但是Python的就有点问题了。 将_gdal.dll与gdal.dll拷贝到site- packages里面,然后在Python下
import gdal
会报错,说找不到MSVCR80.DLL。去C:/WINDOWS/WinSxS/x86_Microsoft.VC80.CRT
.....目录下拷贝一个到system32或site-packages下(可能还会缺别的DLL),跳出一个运行时错误。这儿有一点注意的:拷贝DLL文件时,到WinSXS下面寻找即可,不要从网上下载。我开始就是从网上下载的,然后会再提示缺这缺那的,最后还是不行。再说一句:这个/些DLL文件对于Python使用GDAL来说,并不是必需的。按照后面的方法解决以后,去掉即可。
解决方法
一切问题都集中在manifest上面。关于这一点,这儿有一篇讲得不错。那么,到底是如何解决呢。 打开Pymod目录下的makefile.vc,然后找到link这两行:
link /dll /def:_gdal.def $(OBJ) ../gdal_i.lib /LIBPATH :$(PYDIR)/libs / /out
:$(PYGDAL_DLL)
然后在下面添加一行
if exist $(PYGDAL_DLL).manifest mt -manifest $(PYGDAL_DLL).manifest
-outputresource:$(PYGDAL_DLL);2
然后重新编译,拷贝,运行。 可能会先需要这一句:
nmake /f makefile.vc clean