.obj : error LNK2019: 无法解析的外部符号


记录一个报错

.obj : error LNK2019: 无法解析的外部符号 "public: void __thiscall


习惯上先去看看 | “#include”语句是否包含 | 或者是否包含正确。

符号无法解析意味着编译器知道有这个符号存在,也就是有声明,但在链接时,找不到实现代码,那么就去看看报错的这个函数有没有实现代码。如果它们的确已经有了,还是出现这个错误,就把它们重新编译一下。

总结(预先谢谢可能的博友斧正:

①在.h里面声明,在.cpp没有实现。

细节重点是三个部分【①头文件声明②源文件实现③类名 classname::】

 

②引用自其他文件,但可能没有放到当前工程的目录树下

添加现有文件->...

 

③文件或者类的命名重复

因为编译有先后顺序,在同一个工程下可能会发生替换,结果在链接的时候发生错误。

对自己操作的工程得有一些熟悉,或者命名的时候在当前的解决方案里搜索匹配一下以防万一? 归根结底还是保证使用较为规范的命名习惯,切忌只有上帝和你才知道的秘密。

 

④内联函数相关,

如果内联函数的声明在头文件中,实现在源文件中,这时候如果其他类中只是包含了头文件,在调用这个内联函数时也会出现这个问题。

此时把函数实现放到头文件中,或者把.cpp也include进来,就可以解决问题。

 

⑤动态库中定义的类

添加库->...


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2024 CODEPRJ.COM