Visual Studio的链接错误LNK2005 LNK2020和(Visual Studio l

2019-10-19 05:26发布

我使用Visual Studio 2003和我得到在我的项目下列链接错误:

Linking...
LINK : warning LNK4075: ignoring '/EDITANDCONTINUE' due to '/INCREMENTAL:NO' specification
msvcrtd.lib(MSVCR71D.dll) : error LNK2005: _fprintf already defined in LIBCMTD.lib(fprintf.obj)
C:\Documents and Settings\mz07\Desktop\project\HLconsoleExample\Debug\HLconsoleExample.exe : fatal error LNK1169: one or more multiply defined symbols found

然后我包括libcmtd.lib成“忽略特定的图书馆”行,得到了另一个错误:

Linking...
LINK : warning LNK4075: ignoring '/EDITANDCONTINUE' due to '/INCREMENTAL:NO' specification
LINK : error LNK2020: unresolved token (0A000037) _CxxThrowException
LINK : error LNK2020: unresolved token (0A000039) delete
LINK : fatal error LNK1120: 2 unresolved externals

这是我的主类的开头:

#include <cstdio>
#include <iostream>

#if defined(WIN32)
# include <conio.h>
#else
# include "conio.h"
#endif

#include <HL/hl.h>
#include <HD/hd.h>

#include <HDU/hduVector.h>
#include <HDU/hduError.h>
...
int main(int argc, char *argv[])
{
  HHD hHD;
  HHLRC hHLRC;
  HDErrorInfo error;
...
}

我包括我使用到链接属性的所有库。 下面是它的命令行输出:

/OUT:"C:\Documents and Settings\mz07\Desktop\project\HLconsoleExample\Debug\HLconsoleExample.exe" /INCREMENTAL /NOLOGO /NODEFAULTLIB:"libcmtd.lib" /DEBUG /ASSEMBLYDEBUG /PDB:"C:\Documents and Settings\mz07\Desktop\project\HLconsoleExample\Debug/HLconsoleExample.pdb" /FIXED:No hl.lib hd.lib HDUD.lib  kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib "\Program Files\SensAble\3DTouch\lib\hl.lib" "\Program Files\SensAble\3DTouch\lib\hd.lib" "\Program Files\SensAble\3DTouch\utilities\src\Hdu\Debug\HDUD.lib"

我是新来的C ++,我真的不知道如何联系起来的作品:)所以任何帮助表示赞赏。

Answer 1:

要链接一的.lib其代码是不兼容的编译器设置编译。 问题之一是项目+属性,C / C ++,代码生成,运行库。 / MD不能与/ MT兼容。 你要么必须重建的.libs以匹配您的.exe项目设置或周围的其他方法。



文章来源: Visual Studio linking error LNK2005 and LNK2020