Win8.1运行Win10编译的C++程序提示api-ms-win-core-libraryloader-l1-2-1.dll缺失
解决Windows 8.1部署C++程序时api-ms-win-core-libraryloader-l1-2-1.dll缺失问题
一、无需重新编译的修复方案
- 安装对应版本的Visual C++ Redistributable运行库:别单独下载dll文件,直接给Win8.1安装和你编译程序时所用VS版本匹配的VC运行库包(分x86和x64,要和程序位数对应)。api-ms-win-core开头的dll属于VC运行库的依赖组件,官方安装包会自动处理完整依赖链,比单独复制dll靠谱得多。
- 检查部署文件完整性:如果程序是动态链接编译的,确认打包时没漏带VC运行库的核心文件,比如vcruntime140.dll、msvcp140.dll这些,必须和程序的编译版本、位数完全一致。
- 更新Windows 8.1系统:安装Win8.1的所有累计更新补丁,这个dll属于系统基础库,补丁可能会补上系统中缺失的文件。
二、在Win10的VS中重新编译适配Win8.1的配置
如果上述方法都无效,在Win10的VS里修改以下配置后重新编译,就能彻底避免兼容问题:
- 右键项目打开属性窗口,进入配置属性 -> 常规:
- 把Windows SDK版本改成
8.1 - 把平台工具集换成兼容Win8.1的版本,比如VS2019选
v141(需要先在VS安装器里勾选安装"VC++ 2017工具集"),VS2017直接选v141即可
- 把Windows SDK版本改成
- 进入配置属性 -> 链接器 -> 系统:把最低版本设置为
8.1 - (可选)改成静态链接减少依赖:进入配置属性 -> C/C++ -> 代码生成,把运行库设为
多线程(/MT)(Debug版本选多线程调试(/MTd)),这样VC运行库会直接打包到exe里,无需额外携带dll文件。
内容的提问来源于stack exchange,提问作者Mari
相关产品推荐
相关产品推荐

