链接器错误2005年,2001年在Visual Studio 2008中
-
06-07-2019 - |
题
我有一个在VC6中编译正常的ATL COM项目,在VS2008中编译时会出现以下链接器错误。
错误LNK2005:“void * __cdecl operator new(unsigned int)" (?? 2 @ YAPAXI @ Z)已经定义了 libcmt.lib(new.obj)文件:uafxcw.lib
delete
, new []
和 delete []
还有三个类似的错误。
我在网上查看了几篇文章,其中大部分都说它是CRT和MFC dll之间的冲突。 (拾取它们的顺序)。一篇文章建议将冲突的lib添加到项目设置中的ignore lib列表中。
这样做,我留下了一个错误:
错误LNK2001:未解析的外部 符号__afxForceEXCLUDE文件:LMAN.Lib
错误指向此项目引用的lib(由我们开发的lib)。
有关如何解决此问题的任何想法?我相信这对于迁移到VS 2008的人来说是个常见问题。
解决方案
解决了它。
不需要排除uafxcw.lib。只是必须确保没有使用MFC dll。 我们的lib LMAN.lib使用的是Afxdisp.h(一个MFC dll),这不是必需的。我删除了该项目的包含,然后瞧! - 构建成功。
不隶属于 StackOverflow