从其他项目包含头文件后出现 nafxcwd.lib(timecore.obj) 错误 lnk2001 无法解析的外部符号 __mbctype

问题描述 投票:0回答:2

我用 googleTest 制作了一个用于单元测试的新项目。然后我添加了另一个项目的源文件来测试它。然后我遇到了严重的链接器错误:

  nafxcwd.lib(timecore.obj) : error LNK2001: unresolved external symbol __mbctype
  nafxcwd.lib(apphelp.obj) : error LNK2001: unresolved external symbol __mbctype
  nafxcwd.lib(filelist.obj) : error LNK2001: unresolved external symbol __mbctype
  nafxcwd.lib(appcore.obj) : error LNK2001: unresolved external symbol ___argv
  nafxcwd.lib(appcore.obj) : error LNK2001: unresolved external symbol ___argc

我的项目中的关键选项是:

测试项目:

Runtime Library: Multithreaded Debug DLL (necessary for googleTest)
Use of MFC: Shared DLL

生产性项目:(这实际上应该不重要)

  Runtime Library: Multithreaded Debug DLL
  Use of MFC: Use MFC in a static library

即使我使用 MFC 作为共享 DLL 从生产项目中复制所有选项和文件,这些消息也会被抛出。

visual-studio-2010
2个回答
0
投票

导入到测试项目的文件具有“stdafx.h”-include,该文件已解析为生产项目之一。 在那里,

#include <afxwin.h> 

已包括在内。检查结果表明,对于共享 MFC-DLL,您需要

#define _AFXDLL

在您的项目中/之前 afxwin-include。否则你会得到这些错误。


0
投票

要消除 VC++ 6 中的此链接器错误,请进入项目设置、常规并将 Microsoft 基础经典更改为在共享 dll 中使用 MFC。

© www.soinside.com 2019 - 2024. All rights reserved.