在Windows上编译GDAL 1.11.0时出现无法解析的外部符号

 marco112977 发布于 2022-12-19 19:04

我在按照以下指南编译gdal 1.11.0时遇到问题:http ://trac.osgeo.org/gdal/wiki/BuildingOnWindows

我可以运行,nmake /f makefile.vc MSVC_VER=1800 WIN64=YES但是在安装时失败,并显示以下错误:

   Creating library gdal_i.lib and object gdal_i.exp
LINK : error LNK2001: unresolved external symbol _OGRFeatureStylePuller
LINK : error LNK2001: unresolved external symbol _OSRValidate
LINK : error LNK2001: unresolved external symbol _OPTGetProjectionMethods
LINK : error LNK2001: unresolved external symbol _OGR_G_GetPointCount
LINK : error LNK2001: unresolved external symbol _OGRRegisterAll
LINK : error LNK2001: unresolved external symbol _GDALSimpleImageWarp@36
LINK : error LNK2001: unresolved external symbol _GDALReprojectImage@48
LINK : error LNK2001: unresolved external symbol _GDALComputeMedianCutPCT@32
LINK : error LNK2001: unresolved external symbol _GDALDitherRGB2PCT@28
LINK : error LNK2001: unresolved external symbol _OCTNewCoordinateTransformation
@8
gdal111.dll : fatal error LNK1120: 10 unresolved externals
NMAKE : fatal error U1077: '"C:\Program Files (x86)\Microsoft Visual Studio 12.0
\VC\BIN\amd64\link.EXE"' : return code '0x460'
Stop.

是我能做些什么还是从http://trac.osgeo.org/gdal/wiki/DownloadSource下载的源代码中有损坏的东西

1 个回答
  • 波尔提供的答案不正确。我终于找到了解决此问题的方法:

      在GDAL主文件夹下找到nmake.opt文件,将其打开并搜索“ SYM_PREFIX”的定义。然后将“ SYM_PREFIX = _”更改为“ SYM_PREFIX =”(删除下划线)。

      在GDAL主文件夹下找到makefile.vc文件,将其打开并搜索“ BASE_INCLUDE”的第一个定义(另一个定义就在它的下面,请不要更改错误的定义)。从更改 BASE_INCLUDE = /INCLUDE:_GDALSimpleImageWarp@36 / /INCLUDE:_GDALReprojectImage@48 / /INCLUDE:_GDALComputeMedianCutPCT@32 / /INCLUDE:_GDALDitherRGB2PCT@28 / /INCLUDE:_OCTNewCoordinateTransformation@8 $(VB6_SAFEARRAYSYM) 为: BASE_INCLUDE = /INCLUDE:$(SYM_PREFIX)GDALSimpleImageWarp / /INCLUDE:$(SYM_PREFIX)GDALReprojectImage / /INCLUDE:$(SYM_PREFIX)GDALComputeMedianCutPCT / /INCLUDE:$(SYM_PREFIX)GDALDitherRGB2PCT / /INCLUDE:$(SYM_PREFIX)OCTNewCoordinateTransformation $(VB6_SAFEARRAYSYM) 。简而言之,用$(SYM_PREFIX)替换'_',然后删除'@number'。

    根据某些网页,此问题可能是由处理未修饰符号的AMD64 vc ++编译器的更改引起的。

    2022-12-19 19:05 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有