作者:朱金灿
来源:http://blog.csdn.net/clever101
同事编译gdal-2.1.2,遇到一个编译错误:’mt’不是内部或外部命令,也不是可运行的程序或批处理文件。NMAKE:fatal errorU1077:“if”:返回代码“0x1”,如下图:
出现这个错误的原因是gdal的makefile文件调用了windows SDK的mt.exe来将manifest文件集成到gdal库中,但是mt.exe的路径并没有被识别。要识别mt.exe,需要在makefile中加上mt.exe的绝对路径或者把mt.exe的路径放入环境变量中。具体是修改makefile.vc的184行
if exist $(GDAL_DLL).manifest mt -manifest$(GDAL_DLL).manifest -outputresource:$(GDAL_DLL);2
修改为:
if exist $(GDAL_DLL).manifest “C:\ProgramFiles (x86)\Microsoft SDKs\Windows\v7.1A\Bin\mt.exe” -manifest$(GDAL_DLL).manifest -outputresource:$(GDAL_DLL);2