LNK2019 未解析的外部符号 OOP 和多态性?

LNK2019 Unresolved external symbol OOP and polymorphism?

提问人:mohammed yahya 提问时间:3/4/2021 最后编辑:mohammed yahya 更新时间:3/4/2021 访问量:121

问:

我的项目是用 C++ 构建一个堆栈,我使用数组实现了它,但我有 6 个错误:所有这些错误 LNK2019 未解析的外部符号到某些函数实现。CPP文件我知道这是一个链接器错误,当我将我的代码划分为头文件.h和.cpp实现文件时出现问题,但语法没问题,程序在我必须测试文件中的代码时程序已正确运行:主文件,请问有什么解决方案吗?

这是代码的链接:https://github.com/MohamedYehiaShahin/stack-usin-array-c-

C++ 链接器错误 LNK2019

评论

2赞 Casey 3/4/2021
请发布您的代码
0赞 user4581301 3/4/2021
绝对确保在将程序拆分为多个文件时,Visual Studio 知道它应该编译和链接新文件。根据创建新文件的方式,Visual Studio 可能知道它们存在并显示它们,但没有意识到它们是项目的一部分,必须生成。确保正在构建文件的一个快速测试是将一个明显的错误(例如一行随机垃圾)插入到其中一个新文件中,并查看编译器在构建程序时是否抱怨如果它没有抱怨,则必须将文件添加到项目中。
0赞 user4581301 3/4/2021
至于正式的答案,如果没有更多信息,我们就无法给出答案,并且该问题可能会作为一个巨大的综合问题的副本关闭,该问题几乎列出了链接器错误的所有可能原因。祝你好运,在几十页的答案中找到针对你的特定问题的正确解决方案,有了更多信息,问题可能仍然会关闭,但至少我们可以为你指出确切的解决方案。
1赞 Casey 3/4/2021
由于链接腐烂,不鼓励链接到代码/存储库。请在实际问题中发布您的代码,在文本的行中用三个反引号括起来。(可选)如果要帮助语法突出显示器,可以在第一组反引号后附加语言说明符:cpp
1赞 Casey 3/4/2021
@user4581301 TIL 反引号可以转义......太糟糕了,评论中的换行符不能成为一回事。

答:

0赞 Woodford 3/4/2021 #1

既然你没有发布你的代码,我只能猜测。如果您使用模板(非常常见)实现堆栈,则在单独的文件中定义模板函数/方法时,可能会看到此错误。通常,模板函数和类是内联定义的,或者将其定义包含在与其声明相同的头文件中。.cpp

评论

1赞 user4581301 3/4/2021
我强烈建议不要猜测。相反,继续讨论可以给出具体答案的问题。如果你的猜测是正确的,那么这个问题将是为什么模板只能在头文件中实现的重复,并且应该关闭而不是再次回答。
0赞 limserhane 3/4/2021
由于您还不能发表评论,请继续阅读另一篇帖子;)