出现如下问题:
Error 1 error LNK2005: "void __cdecl operator delete(void *)" (??3@YAXPAX@Z) already defined in LIBCMT.lib(delete.obj) uafxcwd.lib
Error 2 error LNK2001: unresolved external symbol ___wargv uafxcwd.lib
Error 3 error LNK2001: unresolved external symbol ___argc uafxcwd.libError 4 fatal error LNK1120: 2 unresolved externals
错误1的解决办法:
网友的提示:
CRT 库对 new、delete 和 DllMain 函数使用弱外部链接。MFC 库也包含 new、delete 和 DllMain 函数。这些函数要求先链接 MFC 库,然后再链接 CRT 库。
出现以上错误可能是由于链接顺序不一致造成的。
处理方法:
1.在项目的每个头文件中加入“#pragma once"使之只编译一次以防出现重复定义错误。
2.在项目的每个源文件中加入"#include "stdafx.h"使之按照正确的顺序编译。
错误1,本人看了上面的提示,认定我的问题是出在头文件多次包含导致的,后来我把一下
#include <stdlib.h>
#include <afxwin.h>
#include <Windows.h>
放到stdafx.h 这个文件里,避免多次包含
错误2,3的本人解放办法:
Project->Properties->Configuration properties->c/c++->code generation->Runtime library
选择 Multi-threaded (/MT)
2,3错误是由于库的问题导致的
补充知识: