在编译32位gdal时遇到了这个错误,试了网上的方法都不好用。自己试出来的解决方案
正在创建库 gdal_i.lib 和对象 gdal_i.exp
LINK :error LNK2001: 无法解析的外部符号
_OSRValidateLINK : error LNK2001: 无法解析的外部符号 _OPTGetProjectionMethodsLINK : error
LNK2001: 无法解析的外部符号_OGR_G_GetPointCountLINK : error
LNK2001: 无法解析的外部符号 _OGRRegisterAllLINK : error LNK2001: 无法解析的外部符号 _GDALSimpleImageWarp@36LINK : error
LNK2001: 无法解析的外部符号 _GDALReprojectImage@48LINK : error
LNK2001: 无法解析的外部符号 _GDALComputeMedianCutPCT@32LINK : error
LNK2001: 无法解析的外部符号 _GDALDitherRGB2PCT@28LINK : error
LNK2001: 无法解析的外部符号 _OCTNewCoordinateTransformation@8
gdal204.dll : fatal error LNK1120: 9 个无法解析的外部命令NMAKE :
fatal error U1077: ““C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\BIN\amd64\link.EXE””: 返回代码“0x460”Stop.
如果已经修改过了makefile.vc和nmake.opt最好先恢复一下
只需要修改nmake.opt的两个地方就可以了
将这段话注释掉
!IFDEF WIN64
WIN64=YES
!ENDIF
修改后
#!IFDEF WIN64
#WIN64=YES
#!ENDIF
修改第二处
!IFDEF WIN64
!UNDEF STDCALL
!ELSE
SYM_PREFIX=_
!ENDIF
修改后
#!IFDEF WIN64
#!UNDEF STDCALL
#!ELSE
SYM_PREFIX=_
#!ENDIF
然后执行
//1910代表vs2017
nmake /f makefile.vc MSVC_VER=1910
nmake /f makefile.vc MSVC_VER=1910 install
nmake /f makefile.vc MSVC_VER=1910 devinstall