2015-09-04 145 views
0

试图链接的应用程序,让大量的错误,如LINK:警告LNK4098,LNK4217错误 - 为什么?

1>LINK : warning LNK4098: defaultlib 'mfc140d.lib' conflicts with use of other libs; use /NODEFAULTLIB:library 
1>LINK : warning LNK4098: defaultlib 'mfcs140d.lib' conflicts with use of other libs; use /NODEFAULTLIB:library 
1>LINK : warning LNK4098: defaultlib 'msvcrtd.lib' conflicts with use of other libs; use /NODEFAULTLIB:library 
1>Move.obj : warning LNK4217: locally defined symbol islower imported in function "struct Token __cdecl NextToken(char * const,int &)" ([email protected]@[email protected]@[email protected]) 
1>Move.obj : warning LNK4217: locally defined symbol isdigit imported in function "struct Token __cdecl NextToken(char * const,int &)" ([email protected]@[email protected]@[email protected]) 
1>Position.obj : warning LNK4049: locally defined symbol isdigit imported 

Position.cpp和Move.cpp是我的代码。这些错误的含义是什么,如何纠正它们?

这是Visual Studio的2015年,该项目从Visual Studio 2010中导入的Windows 7专业版64

回答

1

使用/ VERBOSE:LIB的链接器,以指示at this msdn page尝试开关了解到底是怎么回事。

我有同样的那种与mfc140d.libmfcs140d.lib抱怨和问题是,在我的项目,我必须在Unicode和MCBS遵守图书馆的混合。基本上是/ VERBOSE:LIB还列出了符合unicode命名为mfc140ud.libmfcs140ud.lib我只切换到MCBS字符集并且问题消失。

0

原来,我已经包含来自库的nafxcwd.lib和libcmtd.lib的链接器输入,来自VS的一些先前版本。图书馆冲突时,VS2015增加了警告。从链接器输入列表中删除nafxcwd.lib和libcmtd.lib可解决问题,并且项目现在链接无错误。