将VC++ 2006项目升级到2015时遇LNK1104错误:无法打开mfc42.lib
解决VC++ 2015升级项目中LNK1104无法打开mfc42.lib的问题
mfc42.lib是VC6(Visual C++ 6.0)时代的MFC静态库,VC++2015使用的是更新版本的MFC库(如mfc140.lib),出现这个错误是因为你的升级项目还残留着旧版本的依赖配置,以下是针对性的解决步骤:
检查链接器依赖项
右键项目 → 属性 → 配置属性 → 链接器 → 输入 → 附加依赖项,查看是否手动添加了mfc42.lib,如果有直接删除。同时检查“忽略特定默认库”选项,确保没有强制保留旧MFC库的设置。修正MFC使用配置
进入项目属性的「配置属性 → 常规」,找到“MFC的使用”选项,选择「在共享DLL中使用MFC」或「在静态库中使用MFC」(根据原项目的MFC使用方式选择对应项),VC++2015会自动关联正确版本的MFC库,无需手动指定旧库。清理预处理器定义残留
进入「配置属性 → C/C++ → 预处理器 → 预处理器定义」,检查是否存在_MFC_VER=0x0600这类强制指定VC6版本的定义,如有则删除,让编译器自动使用VC++2015对应的MFC版本定义。重置项目配置文件
删除项目目录下的.vcxproj.user、.suo文件,以及Debug/Release编译输出文件夹,然后重新生成项目,彻底清除旧版本的配置残留。
注意:不要从第三方渠道下载mfc42.lib,不同版本的编译器库文件不兼容,强行引入会导致更多编译或运行时错误,VC++2015自带完整的MFC库支持,只需修正项目配置即可解决问题。
内容的提问来源于stack exchange,提问作者Sanam Sah
相关产品推荐
相关产品推荐

