编译32位gdal,9个无法解析的外部命令

在编译32位GDAL时遇到多个LNK2001错误,无法解析外部符号。通过注释掉nmake.opt中涉及WIN64的部分并调整编译选项,成功解决了问题。具体操作包括取消对WIN64定义的注释和修改SYM_PREFIX。随后使用指定的nmake命令重新编译和安装。
摘要由CSDN通过智能技术生成

在编译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

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值