LNK1169 和 LNK2005

错误重现:

1> vs2010创建 C++ win32 project, Application type: DLL.

2>为了在工程中使用 CString, 在 stdafx.h 中 Include <afx.h>.

3> 编译工程,编译结果如下:LNK1169 和 LNK2005

在网上找到一篇文章很详细的解释了这种现象的前因后果:

[随感]fatal
error LNK1169: one or more multiply defined symbols found终极解决

下面是微软提供的一个解决方案:

Microsoft support: A
LNK2005 error occurs when the CRT library and MFC libraries are linked in the
wrong order in Visual C++

下面我就总结列出在vs2010中解决这些错误的具体操作:

方案1> Project property -> Configuration Properties ->
Linker/General/Force File Output

选择 “Multiply Defined Symbol Only (/FORCE:MULTIPLE)”。

方案2> Project property -> Configuration Properties -> Linker/Command
Line

将 /FORCE:MULTIPLE 加入到 Additional Options 里。

时间: 2024-10-02 21:05:03

LNK1169 和 LNK2005的相关文章

C++ error:LNK2005 已经在*.obj中定义

[问题] >> : error LNK2005: ×××× (★★★★) 已经在 ※※※.obj 中定义 fatal error LNK1169: 找到一个或多个多重定义的符号 [可能的原因] 当第一个使用该头文件的.cpp文件生成.obj的时,int i 已经定义.当另外一个使用这个头文件的.cpp再次[单独]生成.obj的时候,int i 又被定义.然后两个obj被另外一个.cpp也include 这个头的,连接在一起,就会出现重复定义. [解决] 通常是由于在.h文件里定义了此变量,移动

error LNK2005: DDX_Control 已经在 uafxcwd.lib(wincore2.obj) 中定义

编译错误提示: 1>afxnmcdd.lib(wincore2.obj) : error LNK2005: "void __stdcall DDX_Control(classCDataExchange *,int,class CWnd &)" ([email protected]@[email protected]@[email protected]@@Z)already defined in nafxcwd.lib(wincore2.obj) 1>afxnmcdd

error LNK2005 : already defined in libcmt.lib

1>MSVCRT.lib(MSVCR100.dll) : error LNK2005: "public: virtual char const * __thiscall std::exception::what(void)const " ([email protected]@[email protected]@UBEPBDXZ) already defined in libcmt.lib(stdexcpt.obj) 1>MSVCRT.lib(MSVCR100.dll) :

error LNK2005 int __cdecl 解决方案【转】

error LNK2005: "int __cdecl isPtInPolygon(class std::vector<struct double2,class std::allocator<struct double2> > &,struct double2)" ([email protected]@[email protected]@@[email protected]@@@[email protected]@@[email protected]@[

error LNK2005: “public: class std::vector&lt;class std::vector&lt;class std::vector&lt;float&gt;”

VS2010:error LNK2005: "public: class std::vector<class std::vector<class std::vector<class std::vector<float,class std::allocator<float> >,class std::allocator<class std::vector<float,class std::allocator<float> 如: Re

[转帖] 关于形如--error LNK2005: xxx 已经在 msvcrtd.lib ( MSVCR90D.dll ) 中定义--的问题分析解决

原文:http://www.cnblogs.com/qinfengxiaoyue/archive/2013/02/01/2889668.html 转自:http://hi.baidu.com/qinfengxiaoyue/item/ff262ccfb53b4c2ba0b50a89 引自:http://blog.csdn.net/sptoor/archive/2011/02/23/6203376.aspx 对全文有改动. 提示:阅读前需要对静态库(.lib).动态库(.dll).导入库(这个还是.

C++中的“error:LNK2005 已经在*.obj中定义”异常问题

C++中的“error:LNK2005 已经在*.obj中定义”异常问题 异常现象如下:

VC编译错误:msvcrtd.lib(ti_inst.obj) : error LNK2005: &quot;private: __thiscall type_info::t.... 已经在 libcmtd.lib(typinfo.obj) 中定义

1>msvcrtd.lib(ti_inst.obj) : error LNK2005: "private: __thiscall type_info::type_info(class type_info const &)" ([email protected]@[email protected]@@Z) 已经在 libcmtd.lib(typinfo.obj) 中定义1>msvcrtd.lib(ti_inst.obj) : error LNK2005: "

【error LNK2005: "struct HWND__ * ui_hwnd" ([email&#160;protected]@[email&#160;protected]@A) 已经在 Susake.obj 中定义】

产生原因:多文件包含时,全局变量未用extern 解决方法:直接在全局变量前加上extern即可,若要在在其他文件中使用,该变量声明下就ok了~~ 另外引出一个话题,你是不是也发现了这么一个现象?? 比如 A.h A.cpp #include "A.h" #include "B.h" HWND ui_hwnd, hwnd; int main(int argc, char *argv[]) { ui_hwnd = hwnd; return 0; } B.h B.cpp