VS2022编译GDAL库报错: LINK : error LNK2001: 无法解析的外部符号 _OSRValidate _OGR_G_GetPointCount _OGRRegisterAll

这篇具有很好参考价值的文章主要介绍了VS2022编译GDAL库报错: LINK : error LNK2001: 无法解析的外部符号 _OSRValidate _OGR_G_GetPointCount _OGRRegisterAll。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。


场景复现

使用VS2022的Native Tools command prompt for 2022工具编译GDAL库时,报“ LINK : error LNK2001: 无法解析的外部符号 _OSRValidate _OGR_G_GetPointCount _OGRRegisterAll ....”错误 。该问题可能是由处理未修饰符号的AMD64 vc++编译器的更改引起的。
VS2022编译GDAL库报错: LINK : error LNK2001: 无法解析的外部符号 _OSRValidate _OGR_G_GetPointCount _OGRRegisterAll

LINK : error LNK2001: 无法解析的外部符号 _OSRValidate
LINK : error LNK2001: 无法解析的外部符号 _OGR_G_GetPointCount
LINK : error LNK2001: 无法解析的外部符号 _OGRRegisterAll
LINK : error LNK2001: 无法解析的外部符号 _GDALSimpleImageWarp@36
LINK : error LNK2001: 无法解析的外部符号 _GDALReprojectImage@48
LINK : error LNK2001: 无法解析的外部符号 _GDALComputeMedianCutPCT@32
LINK : error LNK2001: 无法解析的外部符号 _GDALDitherRGB2PCT@28
LINK : error LNK2001: 无法解析的外部符号 _OCTNewCoordinateTransformation@8
gdal303.dll : fatal error LNK1120: 8 个无法解析的外部命令
NMAKE : fatal error U1077: ““D:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.32.31326\bin\HostX64\x64\link.EXE””: 返回代码“0x460”
Stop.

解决方案

打开nmake.opt文件,找到SYM_PREFIX的定义。然后将SYM_PREFIX = _更改为SYM_PREFIX =
VS2022编译GDAL库报错: LINK : error LNK2001: 无法解析的外部符号 _OSRValidate _OGR_G_GetPointCount _OGRRegisterAll
打开makefile.vc文件,找到BASE_INCLUDE的第一个定义
替换规则:用$(SYM_PREFIX)替换’_',然后删除@以及后面的数字
原始代码:

BASE_INCLUDE = /INCLUDE:_GDALSimpleImageWarp@36 \
/INCLUDE:_GDALReprojectImage@48 \
/INCLUDE:_GDALComputeMedianCutPCT@32 \
/INCLUDE:_GDALDitherRGB2PCT@28 \
/INCLUDE:_OCTNewCoordinateTransformation@8
!ELSE
BASE_INCLUDE = /INCLUDE:$(SYM_PREFIX)GDALSimpleImageWarp \
/INCLUDE:$(SYM_PREFIX)GDALReprojectImage \
/INCLUDE:$(SYM_PREFIX)GDALComputeMedianCutPCT \
/INCLUDE:$(SYM_PREFIX)GDALDitherRGB2PCT \
/INCLUDE:$(SYM_PREFIX)OCTNewCoordinateTransformation
!ENDIF

修改后的代码:

BASE_INCLUDE = /INCLUDE:$(SYM_PREFIX)GDALSimpleImageWarp \
/INCLUDE:$(SYM_PREFIX)GDALReprojectImage \
/INCLUDE:$(SYM_PREFIX)GDALComputeMedianCutPCT \
/INCLUDE:$(SYM_PREFIX)GDALDitherRGB2PCT \
/INCLUDE:$(SYM_PREFIX)OCTNewCoordinateTransformation
!ELSE
BASE_INCLUDE = /INCLUDE:$(SYM_PREFIX)GDALSimpleImageWarp \
/INCLUDE:$(SYM_PREFIX)GDALReprojectImage \
/INCLUDE:$(SYM_PREFIX)GDALComputeMedianCutPCT \
/INCLUDE:$(SYM_PREFIX)GDALDitherRGB2PCT \
/INCLUDE:$(SYM_PREFIX)OCTNewCoordinateTransformation
!ENDIF

对比图
VS2022编译GDAL库报错: LINK : error LNK2001: 无法解析的外部符号 _OSRValidate _OGR_G_GetPointCount _OGRRegisterAll

修改完成后,再次执行命令,编译GDAL库。
release版本输入

nmake /f makefile.vc
nmake /f makefile.vc devinstall

debug版输入文章来源地址https://www.toymoban.com/news/detail-468762.html

nmake /f makefile.vc DEBUG=1
nmake /f makefile.vc devinstall

到了这里,关于VS2022编译GDAL库报错: LINK : error LNK2001: 无法解析的外部符号 _OSRValidate _OGR_G_GetPointCount _OGRRegisterAll的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • LINK : fatal error LNK1181: 无法打开输入文件“libfftw3f-3.lib”

    从网站 http://www.fftw.org/install/windows.html 上下载最新的预编译文件: 使用Lib.exe生成相应的Lib文件 cd D:fft 32位版本: 64位版本: 生成并得到 libfftw3-3.lib libfftw3f-3.lib libfftw3l-3.lib 将libfftw3f-3.dll libfftw3-3.dll libfftw3l-3.dll放入 生成的库文件libfftw3-3.lib libfftw3f-3.lib libfftw3l-3.lib放入vc中的

    2024年02月07日
    浏览(60)
  • VS2022报错:error : 找不到指定的 SDK“Microsoft.NET.Sdk.Web” 解决办法

    问题描述: 新安装的VS2022打开不了刚git下来的项目,其他同事能正常打开可是我不能。 安装了各种版本的SDK还是会报 error :找不到指定的 SDK“Microsoft.NET.Sdk.Web” 。 新建的项目不能正常打开,解决方案资源管理器没有任何文件 解决步骤: 1、 Win + R 输入cmd,点确定 2、输入

    2024年02月14日
    浏览(58)
  • 成功解决问题LINK : fatal error LNK1181: 无法打开输入文件“m.lib”error: command ‘D:\\Program Files\\Microsoft Visu

    成功解决问题LINK : fatal error LNK1181: 无法打开输入文件“m.lib” error: command \\\'D:\\\\Program Files\\\\Microsoft Visual Studio\\\\2022\\\\Community\\\\VC\\\\Tools\\\\MSVC\\\\14.35.32215\\\\bin\\\\HostX86\\\\x64\\\\link.exe\\\' failed with exit code 1181 目录 解决问题 解决思路 解决方法 LINK : fatal error LNK1181: 无法打开输入文件“m.lib”  err

    2024年02月11日
    浏览(52)
  • vs2010、vs2015 编译报错:error MSB6006: “CL.exe”已退出,代码为 -1073741515

    问题: 描述: 相同的代码,之前能够编译正常,移动到其他电脑,本次是移动到一台win7虚拟机上,编译(新装系统),出现上述问题。 解决方案: 1、推荐使用everything搜索工具,搜索cl.exe,因为我虚拟机上安装了两个版本vs,分别是vs2010和vs2015: 2、然后双击cl.exe,会出现提示

    2024年02月16日
    浏览(52)
  • Matlab2022a无法识别vs2019编译器,未检测到支持的编译器,错误使用Mex -setup error cannot find support compiler

    1、确定一下您的问题:错误使用Mex 2、再执行以下命令: 如果您的结果跟我一样,那么可以继续看,如果不一样,就可能不是同一个问题。 下面直接说解决方案: 3、打开powershell,执行下面命令 install-module -scope currentuser MSI 按照提示输入Y 4、继续执行命令 get-msirelatedproduct

    2024年02月06日
    浏览(77)
  • Visual Studio 2022 报错 LNK1104 无法打开文件“opencv_world310.lib”

    “link.exe”已退出,代码为 1104。 LNK1104 无法打开文件“opencv_world310.lib” 右键项目——属性—— 附加依赖项——编辑——取消勾选“从父级或项目默认设置继承”——确认,重新运行程序即可 运行结果 可能是以前电脑上安装过旧版本的visual studio,老版本文件与新版的vs不兼

    2024年02月16日
    浏览(52)
  • C/C++开发,VS2019编译报错:error C2039: “string“: 不是 “std“ 的成员

    C/C++开发,VS2019编译报错如下: 在VS2019中,对语法的检查更严格,缺少相应的头文件 添加文件件C++头文件

    2024年02月16日
    浏览(37)
  • VS2022编译运行VS2015的项目

        最近新装了VisualStudio2022,有一些VS2015老的项目需要运行,但不想再安装VS2015,就想能否直接在VS2022编译运行,研究一下发现可行,记录一下。 1. 直接升级VS2015项目到2022使用windows sdk 10.0     发现老代码里的一些语法已经不支持,改动会很大,此路不通。 2. 保持VS2015项目

    2024年02月12日
    浏览(46)
  • VS2022编译libui库

    libui是一个 C 中简单且可移植(但并非不灵活)的 GUI 库,它使用每个平台原生的GUI技术进行绘制。 官网地址:链接 本文将使用VS2022编译libui库,操作系统为Windows10。 首先在官网下载源代码,由于此代码不依赖第三库,故只需下载源代码即可进行编译。 我下载了最新的 mast

    2023年04月13日
    浏览(95)
  • VS2022编译nanovg绘图库

    本文将使用VS2022编译nanovg库,操作系统为Windows10。官网地址:链接 nanovg是一个基于 OpenGL 的抗锯齿二维矢量绘图库,可用于 UI 和可视化。截至到目前已经有4.7k star nanovg 使用stb_truetype进行字体渲染,使用stb_image进行图像加载。 Step1 下载nanovg 首先需要在官网下载 nanovg 源代码,

    2023年04月08日
    浏览(78)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包