VC++ 6 链接器错误
Posted
技术标签:
【中文标题】VC++ 6 链接器错误【英文标题】:VC++ 6 Linker Errors 【发布时间】:2011-05-13 17:07:02 【问题描述】:基本上,发生的事情是这样的:我有一个 VC6 工作区(总共包含 3 个项目),在无法成功将其移植到 VS2010 之后,我在虚拟机上安装了 XP(主机上的 Win 7),并且在 devbox 上安装 VS6。
从那里,我能够克服编译错误,并一头扎进一大堆链接器错误......
我不知道出了什么问题。如果有人可以帮助我,将不胜感激!
(来自构建日志的摘录,总共有 41 个链接器错误...)
>Linking...
MainFrm.obj : error LNK2001: unresolved external symbol "public: virtual __thiscall ReportMenuBuilder::~ReportMenuBuilder(void)" (??1ReportMenuBuilder@@UAE@XZ)
MainFrm.obj : error LNK2001: unresolved external symbol "public: __thiscall ReportMenuBuilder::ReportMenuBuilder(void)" (??0ReportMenuBuilder@@QAE@XZ)
MainFrm.obj : error LNK2001: unresolved external symbol "public: bool __thiscall ReportMenuBuilder::Build(bool)" (?Build@ReportMenuBuilder@@QAE_N_N@Z)
MainFrm.obj : error LNK2001: unresolved external symbol "public: int __thiscall CReportMultiDocTemplate::GetDocumentCount(void)const " (?GetDocumentCount@CReportMultiDocTemplate@@QBEHXZ)
MainFrm.obj : error LNK2001: unresolved external symbol "public: class CString __thiscall ReportMenuBuilder::GetFilespecGivenID(unsigned int)const " (?GetFilespecGivenID@ReportMenuBuilder@@QBE?AVCString@@I@Z)
我唯一能想到的显然是项目无法从其他项目中查看必要的文件,但我不知道为什么。
【问题讨论】:
第一个问题 - 它是建立在真正的 XP 机器上的吗? 这可能是 Crystal Reports 的一部分吗?你安装了吗? 这是几年前的代码,它是一个工作产品,所以我假设它是建立在一个真正的 XP 盒子上的。 @kogh 我不明白你为什么会这么认为。 虚拟机(恕我直言)不太可能成为问题。更有可能是缺少库,或者可能是使用不同编译器版本编译的库。包含“ReportMenuBuilder”代码的东西。您是否正确设置了旧的构建脚本和 environmentmset? EnvVars、依赖库或 SDK,诸如此类。 【参考方案1】:我的第一个猜测是您没有将 .lib 文件添加到其他项目的额外导入中。如果你有 dumpbin 二进制文件,看看你是否看到导出。
【讨论】:
以上是关于VC++ 6 链接器错误的主要内容,如果未能解决你的问题,请参考以下文章
std::exception::_Raise 和 std::exception::exception 上的 VC++ 链接器错误