【发布时间】:2014-06-20 10:23:51
【问题描述】:
我尝试过:“源文件 > 添加 > 现有项目”并选择了 .cpp/.h 文件,但仍然出现链接器错误(可能是因为我的 .cpp 文件没有传递到编译器):
错误 LNK2001:无法解析的外部符号“struct Mem mem” (?mem@@3UMem@@A)
我该如何解决?
【问题讨论】:
-
可能有一百种不同的东西——首先检查它是否被编译(例如添加一个
#error Give error here!——这应该会发生错误)。如果这还不够明显,那么也许可以发布更多关于你在做什么的细节? -
@MatsPetersson:确实如此。在我尝试添加到项目的两个文件中给出此消息:
filename.cpp(8) : fatal error C1189: #error : Give error here! -
那么,显然它正在编译。接下来检查它是否真的在链接命令中 - 删除
#error行并在全局范围内添加诸如extern int KerFlunk;之类的行 - 如果您收到KerFlunk缺失的错误,则链接器正在工作,您正在只是缺少适当的声明——没有向我们展示任何代码,我们只能猜测。 -
extern int KerFlunk;没有给出错误消息。错误数量与之前保持一致:2,大约unresolved external symbol。我应该显示什么代码?我的意思是,我创建了一个新项目并尝试将两个现有项目添加到当前项目中,但它确实未能在链接器级别进行编译。 -
也许您需要实际“使用”
KerFlunk(例如在某些代码中添加int x = KerFlunk) - 我很确定问题出在您的实际代码中。首先显示您的struct Mem mem;的声明和定义
标签: c++ visual-studio visual-studio-2008 linker