代码之家  ›  专栏  ›  技术社区  ›  bobbyalex

Visual Studio 2008中的链接器错误2005、2001

  •  0
  • bobbyalex  · 技术社区  · 15 年前

    我有一个ATLCOM项目,它在VC6中编译得很好,在VS2008中编译时会出现以下链接器错误。

    错误lnk2005:“void*uu cdecl operator new(unsigned int)“ ??2@yapaxi@z)已在中定义 libcmt.lib(new.obj)文件:uafxcw.lib

    还有三个类似的错误 delete , new[] delete[] .

    我在网上查阅了几篇文章,其中大多数都说CRT和MFC DLL之间存在冲突。(取车顺序)。一篇文章建议将冲突的lib添加到项目设置中的忽略lib列表中。

    这样做,只留下一个错误:

    错误LNK2001:无法解析的外部 符号“afxforceexclude”文件:lman.lib

    该错误指向此项目引用的lib(我们开发的lib)。

    有什么解决办法吗?我相信这对于迁移到VS 2008的人来说是一个常见的问题。

    1 回复  |  直到 9 年前
        1
  •  1
  •   bobbyalex    15 年前

    解决了它。

    不需要排除uafxcw.lib。只是必须确保不使用MFC DLL。 我们的lib lman.lib使用的是afxdisp.h(一个mfc dll),这不是必需的。我从那个项目中删除了include,然后瞧!-生成成功。