C++链接错误解决

来源:互联网 发布:vm12安装mac os win10 编辑:程序博客网 时间:2024/05/16 18:55

c++编程出现:

nafxcwd.lib(afxmem.obj) :error LNK2005:"void * __cdecl operator new(unsigned int)"(??2@YAPAXI@Z) already defined in LIBCMTD.lib(new.obj) 。。。

在网上看解决办法:微笑

解决方案一:强制链接器按照正确的顺序链接库

  1. 在“项目”菜单上,单击“设置”。
  2. 在“项目设置”对话框的“以下项目的设置”视图中,单击以选中出现链接错误的项目配置。
  3. 在“链接”选项卡上,单击以选中“类别”组合框中的“输入”。
  4. 在“忽略库”框中,插入库名(例如,Nafxcwd.lib;Libcmtd.lib)。

    注意:等效的链接器命令行是:/NOD:<library name>
  5. 在“对象/库模块”框中,插入库名。必须确保这些库按顺序列出,而且是行中的前两个库(例如,Nafxcwd.lib 和 Libcmtd.lib)。
要在 Visual C++ .NET 中设置该选项,请阅读“设置 Visual C++ 项目属性”联机帮助主题。

解决方案二:查找导致问题的模块并纠正它

若要查看当前的库链接顺序,请按照下列步骤操作:
  1. 在“项目”菜单上,单击“设置”。
  2. 在“项目设置”对话框的“以下项目的设置”视图中,单击以选中出现链接错误的项目配置。
  3. 在“链接”选项卡上的“项目选项”框中键入 /verbose:lib
  4. 重新生成项目。在链接过程中,这些库将在输出窗口中列出。
但是我在试过之后,发现要么问题还在大哭奋斗,要么会出现新的问题,最后在project->setting->general中将默认的值改为现在的即可,如图所示

大笑

0 0
原创粉丝点击