获取 nafxcwd.lib(timecore.obj) 错误 lnk2001 无法解析的外部符号 __mbctype 在来自其他项目的标头包含之后

Posted

技术标签:

【中文标题】获取 nafxcwd.lib(timecore.obj) 错误 lnk2001 无法解析的外部符号 __mbctype 在来自其他项目的标头包含之后【英文标题】:getting nafxcwd.lib(timecore.obj) error lnk2001 unresolved external symbol __mbctype after header-include from other project 【发布时间】:2015-04-10 17:17:45 【问题描述】:

我创建了一个新项目,用于使用 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,这些消息也会被抛出。

【问题讨论】:

【参考方案1】:

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

#include <afxwin.h> 

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

#define _AFXDLL

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

【讨论】:

以上是关于获取 nafxcwd.lib(timecore.obj) 错误 lnk2001 无法解析的外部符号 __mbctype 在来自其他项目的标头包含之后的主要内容,如果未能解决你的问题,请参考以下文章

错误记录

operator new[]() already defined in libcpmt.lib报错问题处理

MFC CRT 订单链接器问题

js如何获取某一个元素,如果获取不到就继续获取,直到获取到后停止获取?

iOS ---------- 获取设备的各种信息

java反射获取属性值