首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >链接器:无法打开文件'nafxcwd.lib‘

链接器:无法打开文件'nafxcwd.lib‘
EN

Stack Overflow用户
提问于 2014-06-28 23:38:00
回答 4查看 19.6K关注 0票数 19

我在通过visual studio 2013编译我的项目时遇到了问题。我得到了这个链接器错误:

代码语言:javascript
运行
复制
LINK : fatal error LNK1104: cannot open file 'nafxcwd.lib'

根据这个page,我必须在共享库中使用MFC。但我根本不使用MFC。

我所有的库和主项目都是使用Use Standard Windows Libraries设置编译的。仅当我尝试通过Visual Studio 2013工具链构建项目时,才会出现此问题,但它使用Visual Studio 2010工具链成功构建。

P.S.项目已从Visual Studio 6.0移至Visual Studio 2013。

EN

回答 4

Stack Overflow用户

发布于 2015-08-11 20:37:28

似乎在Microsoft Visual MFC6.0标准版中不支持与C++库的静态链接,正如微软页面所说的那样。但在Visual Studio 2013中,您可以将统计链接到Microsoft Libraries。检查此链接https://support.microsoft.com/en-us/kb/243458以解决您的问题。

来自微软网站的 :

若要将MFC项目设置更改为动态链接到MFC库,请执行下列步骤:打开MFC项目。

  1. 在项目菜单中,单击设置。
  2. 在设置组合框中,选择所有配置。单击常规选项卡。如果看不到,请使用选项卡滚动按钮向左滚动。
  3. 在“Microsoft基础类”组合框中,选择“在共享的DLL中使用MFC”。单击“确定”保存更改。
票数 3
EN

Stack Overflow用户

发布于 2015-05-30 03:22:41

要找出使用MFC的罪魁祸首,请链接到/VERBOSE并在输出中搜索nafxcwd。它很可能会出现在/DEFAULTLIB指令之后--只要注意哪个库恰好在指令之前加载即可。

票数 0
EN

Stack Overflow用户

发布于 2016-03-17 16:27:02

通过更新一个根本不使用MFC的VS2008项目,我遇到了同样的问题,并通过以下三个步骤解决了它。请看照片来看一下项目(VS2008)的突出显示的属性。

第1步

请在您的stdafx.h文件中添加该行#define _AFXDLL

代码语言:javascript
运行
复制
#define WIN32_LEAN_AND_MEAN     // Exclude rarely-used stuff from Windows headers

#define _AFXDLL

第2步

转到您的VS 2013解决方案并打开“项目属性-> C/C++ ->代码生成->运行时库”,然后将值更改为多线程调试DLL (/MDd) (将您的发布配置调整为多线程DLL (/MD),一旦完成这两个步骤,您将开始收到此链接错误

错误LNK1104:无法打开文件'mfc120d.lib‘

现在,您必须将项目的“字符集”设置为Unicode,而不是_MBCS。

第3步

现在打开"Project Properties -> General -> Project Defaults -> Character Set“并将值更改为Use Unicode Character Set,现在这部分需要更多的耐心和工作,您必须在源文件中将字符串特征更改为wchar_t或the。

希望它能解决你的问题。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24468370

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档