VC++常见错误原因解析之error LNK2019: 无法解析的外部符号 “public: void __thiscall[通俗易懂]

VC++常见错误原因解析之error LNK2019: 无法解析的外部符号 “public: void __thiscall[通俗易懂]VC++常见错误原因解析之errorLNK2019:无法解析的外部符号"public:void__thiscall出现这个错误,应该首先查看“#include”语句是否包含,或者是否包含正确。符号无法解析意味着编译器知道有这个符号存在,也就是有声明,但在链接时,找不到实现代码,那么就去看看报错的这个函数有没有实现代码。如果它们的确已经有了,还是出现这个错误,就把它们重新编译一下。…

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

Jetbrains全系列IDE稳定放心使用

VC++常见错误原因解析之error LNK2019: 无法解析的外部符号 “public: void __thiscall

出现这个错误,应该首先查看“#include”语句是否包含,或者是否包含正确。符号无法解析意味着编译器知道有这个符号存在,也就是有声明,但在链接时,找不到实现代码,那么就去看看报错的这个函数有没有实现代码。如果它们的确已经有了,还是出现这个错误,就把它们重新编译一下。

根据个人遇到这个错误时的记录,原因可以分为一下几种:

原因一:只是在.h里面声明了某个方法,没有在cpp里面实现。

具体讲,有时候在头文件中声明了需要的方法,确实忘记了在源文件中实现;

有时候在头文件中声明了需要的方法,在源文件中实现了该方法,但是却遗留了方法名前的“classname::”;

有时候在头文件中声明并实现了需要的方法,但是在代码调整时直接把方法copy到源文件时,并没有在函数前加“classname::”;

原因二:声明和实现都有了,但是没有添加到vsproject目录下面,这时候如果在其他.cpp中引用的,就会出现这个错误。

具体讲,导入自己以前的代码或其他现有代码时,复制到工程下目标文件夹后,有时候会在vsproject目录下忘记或遗漏添加这些文件,就可能引起这个错误。

原因三:有时候工程比较大时,会直接加入一些原有的基础工程来提交效率,如果对原有工程不太熟悉,在工程中加入了有相同名字的文件或者类时,同样会引起这个问题。

这种情况下的具体原因是编译时会出现相同名字的中间文件,因为编译有先后顺序,出现了文件替换,在其他文件引用被替换掉的文件时,导致最后会出现了个连接问题。

原因四:内联函数相关,如果内联函数的声明在头文件中,实现在源文件中,这时候如果其他类中只是包含了头文件,在调用这个内联函数时也会出现这个问题。此时把函数实现放到头文件中,或者把.cppinclude进来,就可以解决问题。

原因五:如果这个类是动态库中定义的类,可能是因为没有把这个动态库对应的.lib文件加到工程中。

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

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/185633.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • phpstrom2021 激活码【2021免费激活】

    (phpstrom2021 激活码)JetBrains旗下有多款编译器工具(如:IntelliJ、WebStorm、PyCharm等)在各编程领域几乎都占据了垄断地位。建立在开源IntelliJ平台之上,过去15年以来,JetBrains一直在不断发展和完善这个平台。这个平台可以针对您的开发工作流进行微调并且能够提供…

  • String 时间戳 转 Date 时间格式 java[通俗易懂]

    String 时间戳 转 Date 时间格式 java[通俗易懂]今天遇到一个问题是从数据库提取出String类型的时间戳,然后将他转换为Date类型(yyyy-MM-ddHH:mm:ss)再存入数据库那么就总结一下时间类型的转换吧首先这个转换为Stringseconds=toutiaoArticle.get("article_publish_time").toString();Simple…

  • fragment与activity生命周期方法是一致的_android的生命周期

    fragment与activity生命周期方法是一致的_android的生命周期如果我们在Fragment和它的宿主Activity的生命周期中都加上Log日志,你能顺利写出他们的执行顺序吗?我们先来看一张Google官方的图片:咋一听,Activity生命周期有七个方法,Fragment生命周期有十一个方法,貌似挺复杂的,其实我们只需要明白到底是谁带领着谁去执行生命周期的方法,就能很快弄明白这个问题。在创建的过程中,是Activity带领Fragment执行生命周期中

  • 《深入解析IPv6(第3版)》——第10章 IPv6路由选择10.1 IPv6中的路由选择

    《深入解析IPv6(第3版)》——第10章 IPv6路由选择10.1 IPv6中的路由选择

  • 【Hibernate】uniqueResult方法「建议收藏」

    【Hibernate】uniqueResult方法「建议收藏」数据库中根据你的查询条件只会返回唯一结果,就可以用uniqueResult这个方法!否则就用list();其返回类型为Object uniqueResult()方法通常是在业务方法查询语句中用到的,比如(UsersRoles)getSession().createQuery(“selecturfromUsersRolesurwhereur.role.id=?andur.

  • C++二维数组sort排序问题

    C++二维数组sort排序问题以往遇到行排列问题(按每行的字典序排序)的时候,总是使用结构体来进行排序,但是如何使用二维数组来达到同样的效果呢?实验内容:利用二维数组进行“三级排序”测试1:使用c++内置的普通型二维数组#include<algorithm>#include<iostream>usingnamespacestd;boolcmp(inta[],intb[]){ …

    2022年10月20日

发表回复

您的电子邮箱地址不会被公开。

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