最近接手了一个技术顾问的代码,VC6.0, 准备在电脑上跑起来,不过报错:

 error LNK2001: unresolved external symbol "public: virtual __thiscall ...

网上查找了很长时间,无果,决定自行解决。又折腾很久,改项目设置,无果。

转换思路,新建了一个项目,然后比较新项目和老项目之间配置信息的区别,最终找到一项:

工程-设置-C/C++选项卡中,下面的“工程 选项”部分:

VC++6.0 error LNK2001: unresolved external symbol "public: virtual __thiscall_VC  教程

对比如下:可以看到在第二行和第三行,两个项目的配置信息不太一样,

新项目:
/nologo /MDd /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" 
/D "_WINDOWS" /D "_AFXDLL" /D "_MBCS" 
/Fp"Debug/Test1.pch" /Yu"stdafx.h" 
/Fo"Debug/" /Fd"Debug/" /FD /GZ /c 

老项目:
/nologo /MDd /W4 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" 
/D "_CONSOLE" /D "_MBCS" /D "_AFXDLL" 
/Fp"Debug/Che.pch" /YX 
/Fo"Debug/" /Fd"Debug/" /FD /GZ /c 

照着新项目的格式修改老项目:

/nologo /MDd /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" 
/D "_WINDOWS" /D "_AFXDLL" /D "_MBCS" 
/Fp"Debug/Che.pch" /Yu"stdafx.h" 
/Fo"Debug/" /Fd"Debug/" /FD /GZ /c 

保存之后,重新build, LNK2001的错误信息消失。