【发布时间】:2015-03-01 04:06:13
【问题描述】:
我收到了unresolved external symbol "public: __thiscall TestLanguage::TestLanguage(void)" (??0TestLanguage@@QAE@XZ) referenced in function _main
据我所知,TestLanguage 构造函数已定义,但显然编译器看不到它。我唯一的结论是存在某种包含问题(例如循环包含)。
我已经为下面的每个翻译单元制作了包含图表,但是我看不到任何问题。任何指导将不胜感激。
包括:
Test.cpp
Expression.h
Operation.h
Token.h
CPU.h
Operation.h
TestLanguage.h
ILanguage.h
TLOperators.h
IOperator.h
Operation.h
Token.h
TestLanguage.cpp
TestLanguage.h
ILanguage.h
TLOperators.h
IOperator.h
Operation.h
Token.h
TLOperators.cpp
TLOperators.h
IOperator.h
Operation.h
Token.h
Expression.h
Operation.h
Token.h
CPU.h
Operation.h
CPU.cpp
CPU.h
Operation.h
Operation.h
Expression.cpp
Expression.h
Operation.h
Token.h
Util.h
IOperator.h
Operation.h
Token.h
CPU.h
Operation.h
ILanguage.h
Operation.cpp
Operation.h
Token.cpp
Token.h
【问题讨论】:
-
您有 MCVE 吗? stackoverflow.com/help/mcve
-
@inetknght 我会尽量凑齐。
-
我还没有投反对票(还 :)),但这是一个合理的问题吗?您没有向我们提供任何有用的信息。它们包含的源文件和头文件的巨大树没有用,因为 1. 我们无法知道它是否正确 2. 没有任何迹象表明您是否提供了相关构造函数的定义。
-
@Brett 我没有重复投票。我选择了“离题”选项之一,即要求 MCVE 的选项。这是stackoverflow关闭系统的一个工件,只出现一个原因(可能是大多数原因,我不同意。)不过,您的问题顶部有一个链接。
-
通常我相信 OP 会提供正确的信息,但您发布的内容很容易出错。而且,即使我不怀疑任何包含的东西,它有什么用处? 发生错误是因为链接器无法找到定义,这使得有关哪些翻译单元的信息可以看到类定义无关。没有人希望你发布一个完美的问题,否则就不需要 cmets 部分。但我们确实希望您提供相关信息。我知道您不是故意隐瞒的,但抱怨投反对票并没有任何帮助。
标签: c++ visual-studio-2013 include unresolved-external