VS2010项目迁移至VS2022后编译报错LNK1104:无法打开mfc100.lib
mfc100.lib是Visual Studio 2010对应的MFC库文件,VS2022使用的是更高版本的MFC库(如mfc140.lib及后续版本),出现这个错误是因为项目仍在引用旧版本的MFC依赖,可按以下步骤排查修复:
检查并修正MFC使用设置
右键项目 → 属性 → 配置属性 → 常规,将“MFC的使用”设置为“在共享DLL中使用MFC”或“在静态库中使用MFC”。VS2022会根据这个设置自动关联对应版本的MFC库,无需手动指定旧版本库文件。清理附加依赖项中的旧库引用
右键项目 → 属性 → 配置属性 → 链接器 → 输入,查看“附加依赖项”列表,若存在mfc100.lib的手动引用,直接删除该项。移除旧版本VS的库目录
右键项目 → 属性 → 配置属性 → VC++目录 → 库目录,检查是否包含VS2010的库路径(例如C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\lib),如有则移除,仅保留VS2022对应的库目录。更新平台工具集
右键项目 → 属性 → 配置属性 → 常规,确认“平台工具集”选择的是VS2022对应的版本(如v143),而非VS2010的v100。切换工具集后,VS会自动适配新的编译环境和库文件。清理残留编译文件后重新生成
执行菜单“生成 → 清理解决方案”,手动删除项目目录下的Debug、Release等输出文件夹,再重新执行“生成解决方案”,避免旧编译产物干扰。确认VS2022已安装MFC组件
打开Visual Studio Installer,选择“修改”当前VS2022实例,在“使用C++的桌面开发”工作负载中,确保勾选了“MFC和ATL支持(x86和x64)”组件,未安装则补充安装后再重新构建。
内容的提问来源于stack exchange,提问作者ahmad

