LNK2019的常见情况及解决方法

LNK2019的常见情况及解决方法导致 LNK2019 的常见问题 1 未链接的对象文件或包含符号定义的库 2 符号声明的拼写不与符号的定义相同 3 使用了函数 但类型或参数数目不匹配函数定义 4 声明但未定义的函数或变量 5 nbsp 调用约定是函数声明和函数定义之间的差异 6 符号定义在 c 文件中 但未使用 externC 在 c 文件中声明 7 符号定义为静态 并随后被外部文件引用 8 未定义类的静态成员 9 生成依赖项仅定义为解决方

导致LNK2019的常见问题:

(1)未链接的对象文件或包含符号定义的库

(2)符号声明的拼写不与符号的定义相同

(3)使用了函数,但类型或参数数目不匹配函数定义

(4)声明但未定义的函数或变量

(5)  调用约定是函数声明和函数定义之间的差异

(6)符号定义在c文件中,但未使用extern C在c++文件中声明

(7)符号定义为静态,并随后被外部文件引用

(8)未定义类的静态成员

(9) 生成依赖项仅定义为解决方案中项目依赖项

(10)第三方库问题和Vcpkg

vcpkg 是一种命令行包管理器,可极大简化 Windows 上第三方库的购置与安装。 如果项目要使用第三方库,建议通过 vcpkg 来安装它们。 vcpkg 同时支持开源和专有库。 已测试 vcpkg 公共目录中所有库与 Visual Studio 2015 及 Visual Studio 2017 的兼容性。通过 vcpkg 可以消除或最大程度减少不匹配二进制文件的存在风险及它可能造成的问题。

常见修改方法:

a.改为静态CRT

Configuration Properties->C/C++->Code Generation->Runtime Library->
debug版选/MD

release版选/MT

b.严重性 代码 说明 项目 文件 禁止显示状态

错误 LNK2019 无法解析的外部符号 WinMain,该符号在函数 “int __cdecl __scrt_common_main_seh(void)” (?__scrt_common_main_seh@@YAHXZ)中被引用。

WinMain是Win32项目的入口,所以把应用程序改为控制台类型

[7]import相关的无法解析内容,解决办法是在链接器的依赖项中加入相应的动态库

[9]无法解析的外部符号”__declspec(dllimport) public: int __thiscall HiRTDB::CTagTree::GetObjectA(int,struct HiRTDB::SBaseReadProps const &,struct HiRTDB::SBaseReadValues &)” (__imp_?GetObjectA@CTagTree@HiRTDB@@QAEHHABUSBaseReadProps@2@AAUSBaseReadValues@2@@Z),该符号在函数”public: int __thiscall HiRTDB::CStringImpl::Get(int,struct HiRTDB::SStringReadProps const &,struct HiRTDB::SStringReadValues &)” (?Get@CStringImpl@HiRTDB@@QAEHHABUSStringReadProps@2@AAUSStringReadValues@2@@Z) 中被引用

原因可能是工程配置文件中有多余选项,请参考其他模块的配置选项,不要有多余配置。

[10]在 项目属性\链接器\输入\附加依赖项 中 没有添加*.lib




版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/232144.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • java后端开发需要什么_从事Java后端开发,要学习哪些知识和技能?[通俗易懂]

    java后端开发需要什么_从事Java后端开发,要学习哪些知识和技能?[通俗易懂]很多小伙伴想转行做Java的后端,但是又不知道到底该学习些什么。今天就跟你们聊聊做Java的后端,需要学习和了解什么?1、首先要明确后端包括哪些职业DBA(数据库维护优化专家)Developer(程序猿)Architect(构架师)Scrummaster及类似(敏捷开发专家)ProjectManager(产品狗)Maintenance&ITsupport(通讯和服务器相关)当然这只是一个大…

    2022年7月7日
    22
  • matlab griddata外插,matlab griddata方法使用介绍

    matlab griddata外插,matlab griddata方法使用介绍griddata的作bai用是数据网格化。其一般用du法格式为ZI=griddata(x,y,z,XI,YI)%x、y、z——数据,XI,YI——X-Y平面上的zhi网格数据应用实例:dao>>x=rand(100,1)*4-2;y=rand(100,1)*4-2;>>z=x.*exp(-x.^2-y.^2);>>ti=-2:.2…

    2022年5月9日
    568
  • 心脏出血漏洞小学习

    心脏出血漏洞小学习浅谈心脏出血漏洞心脏出血漏洞简述关于心脏出血漏洞环境的搭建漏洞poc原有漏洞展示修复后代码文章引用与特别鸣谢心脏出血漏洞简述引用百度百科的解释,心脏出血漏洞是一个出现在加密程序库OpenSSL的安全漏洞,该程序库广泛用于实现互联网的传输层安全(TLS)协议。它于2012年被引入了软件中,2014年4月首次向公众披露。只要使用的是存在缺陷的OpenSSL实例,无论是服务器还是客户端,都可能因此而…

    2022年7月17日
    22
  • 实用的在线网站

    目录文档类1.轻松玩转PDF2.Convertio:在线的文件转换器3.CleverPDF4.vvv文档在线导出工具5.微信公众号格式化编辑器6.ProcessOn:免费在线作图,实时协作7.ALLTOALL(在线格式转换)8.Office-Converter9.SuperTools(依奇在线超级转换工具)10.Ligh…

    2022年4月8日
    66
  • Carson带你学Android:最全面的Webview使用详解

    Carson带你学Android:最全面的Webview使用详解前言现在很多App里都内置了Web网页(HypridApp),比如说很多电商平台,淘宝、京东、聚划算等等,如下图那么这种该如何实现呢?其实这是Android里一个叫WebView的组件实现的。今天我将全面介绍WebView的常用用法。目录1.简介WebView是一个基于webkit引擎、展现web页面的控件。Android的Webview在低版本和高版本采用了不同的webkit版本内

    2022年6月2日
    43
  • PhpStorm 2021.5.2 有效激活码(最新序列号破解)

    PhpStorm 2021.5.2 有效激活码(最新序列号破解),https://javaforall.net/100143.html。详细ieda激活码不妨到全栈程序员必看教程网一起来了解一下吧!

    2022年3月17日
    52

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号