error lnk 2019_lnk2005错误

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

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE稳定放心使用

导致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项目的入口,所以把应用程序改为控制台类型

考虑可能的原因:
[0]出现无法解析可能是因为lib文件不正确,比如64位的编译配置,结果使用的是32位的lib包.
[1]只写了类声明,但还没有写实现类,造成调用时无法解析
[2]声明和定义没有统一,造成链接不一致,无法解析
[3]没有在项目属性页的链接器的命令行选项加入相应的类包。
[4]没有在c++包含目录和库目录加入相应的类包路径(*.h和*.lib),*.h一般在src文件夹中,*.lib一般在lib文件夹
[5]在测试工程中被测文件目录可能需要包含被测类的cpp定义文件
[6]ICE接口测试时,无法解析可能因为被测文件没有包含进相关的cpp文件,另外,在TestSuite_ProjectRun.h文件中需要包含IProjectRun.h头文件,及相关的头文件(举例)。

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

[8]出现如下错误的原因一般是动态库没有包进来。__imp
ProjectRun.obj : error LNK2019: 无法解析的外部符号 __imp__StartHistoryLocalModule,该符号在函数 “protected: virtual int __thiscall HiRTDB::CProjectRun::DoStart(void)” (?DoStart@CProjectRun@HiRTDB@@MAEHXZ) 中被引用

[9]error LNK2001: 无法解析的外部符号 __imp___CrtDbgReportW
工程属性,C/C++,代码生成,运行时库选择MDd,

[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/185520.html原文链接:https://javaforall.net

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


相关推荐

  • Android 中arm64-v8a、armeabi-v7a、armeabi、x86简介~

    Android 中arm64-v8a、armeabi-v7a、armeabi、x86简介~LZ是一名96年Android小生,从14年9月培训出来到现在,差不多俩年多的时间,由于一些原因,没能好好把技术提升一下,实乃不该啊。了解起因昨天师傅问,你知道这俩个是什么么?有什么作用么?(如下图所示)现在还记得我那一脸蒙比的样子,诺诺的回答不晓得。师傅说这个是为了兼容一些手机,(此处省略滔滔不绝若干。。。)。听的我更加蒙比了,之前只是知道要把.so库扔进去,但是为什么扔,就不懂了,何谈我怎

    2022年6月10日
    43
  • 腾讯和字节待遇_字节和腾讯哪个值得去

    腾讯和字节待遇_字节和腾讯哪个值得去分享我对两家互联网大厂的了解和主观感受大家好,我是鱼皮,最近这段时间,应该是正值大三的小伙伴最忙碌的时候,不少同学都在准备秋季校园招聘。我当时是通过暑期实习转正进入的腾讯,再加上之前也在字节跳动实习过,所以今天就分享下我对这两家互联网公司的了解和工作感受,希望能帮助大家选择,也可以给还在校园的小伙伴一些坚持的动力吧。工作感受接下来我会从多个方面来分享。由于公司很大,不同部门存在差异,所以工作感受比较主观,不代表整个公司的情况。薪资互联网公司的薪资还是挺高的。像我当时在字节跳动实习时.

    2022年10月6日
    2
  • Android中进行流量统计「建议收藏」

    Android中进行流量统计

    2022年1月28日
    39
  • Dubbo(二)—dubbo支持的协议和注册中心

    Dubbo(二)—dubbo支持的协议和注册中心

    2020年11月12日
    235
  • 粒子群优化算法(PSO)简介及MATLAB实现[通俗易懂]

    粒子群优化算法(PSO)简介及MATLAB实现[通俗易懂]目录粒子群优化算法概述PSO算法步骤PSO(粒子群优化算法)与GA(遗传算法)对比PSO的MATLAB实现粒子群优化算法概述•粒子群优化(PSO,particleswarmoptimization)算法是计算智能领域,除了蚁群算法,鱼群算法之外的一种群体智能的优化算法,该算法最早由Kennedy和Eberhart在1995年提出的,该算法源自对鸟类捕食问题的研究。…

    2022年5月4日
    51
  • springboot实现拦截器_Spring拦截器

    springboot实现拦截器_Spring拦截器集成拦截器登录验证为例添加拦截器public class LoginInterceptor implements HandlerInterceptor { private Logger log = LoggerFactory.getLogger(getClass()); //Controller逻辑执行之前 @Override public boolean preHandle(HttpServletRequest request, HttpServletRe

    2022年8月8日
    6

发表回复

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

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