记录一个报错
.obj : error LNK2019: 无法解析的外部符号 "public: void __thiscall
习惯上先去看看 | “#include”语句是否包含 | 或者是否包含正确。
符号无法解析意味着编译器知道有这个符号存在,也就是有声明,但在链接时,找不到实现代码,那么就去看看报错的这个函数有没有实现代码。如果它们的确已经有了,还是出现这个错误,就把它们重新编译一下。
总结(预先谢谢可能的博友斧正:
①在.h里面声明,在.cpp没有实现。
细节重点是三个部分【①头文件声明②源文件实现③类名 classname::】
②引用自其他文件,但可能没有放到当前工程的目录树下
添加现有文件->…
③文件或者类的命名重复
因为编译有先后顺序,在同一个工程下可能会发生替换,结果在链接的时候发生错误。
对自己操作的工程得有一些熟悉,或者命名的时候在当前的解决方案里搜索匹配一下以防万一? 归根结底还是保证使用较为规范的命名习惯,切忌只有上帝和你才知道的秘密。
④内联函数相关,
如果内联函数的声明在头文件中,实现在源文件中,这时候如果其他类中只是包含了头文件,在调用这个内联函数时也会出现这个问题。
此时把函数实现放到头文件中,或者把.cpp也include进来,就可以解决问题。
⑤动态库中定义的类
添加库->…
手机扫一扫
移动阅读更方便
你可能感兴趣的文章