如何将VCRuntime140.dll嵌入C语言EXE,实现跨Windows PC运行
解决Windows下C语言程序依赖vcruntime140d.dll的问题
核心原因
vcruntime140d.dll是Debug版本的Visual C++运行时库文件,仅在安装了Visual Studio调试组件的机器上存在。你当前编译的是Debug版本程序,所以在其他未装对应组件的电脑上会触发缺失报错。
解决方案
1. 切换到Release编译模式
在你的编译器(如Visual Studio)中,将编译配置从Debug切换为Release:
- 右键项目打开属性面板
- 进入"配置属性" → "常规",将"配置"选项改为
Release - 保持已设置的
x64平台不变
2. 静态链接Visual C++运行时库
为让程序完全独立,不依赖系统中的外部dll,需设置静态链接:
- 打开项目属性 → "配置属性" → "C/C++" → "代码生成"
- 将"运行库"改为
多线程(/MT)(Release模式下的静态链接选项)
3. 重新编译生成程序
完成上述设置后重新编译,生成的exe会将所需运行时库代码嵌入自身,无需依赖外部dll文件。
验证测试
将新生成的Release版本exe复制到未安装Visual Studio的Windows电脑上运行,即可正常启动,不会再出现缺失dll的错误。
附上你的测试代码:
#define _CRT_SECURE_NO_DEPRECATE #include <stdio.h> #include <stdlib.h> #include <string.h> #include <stdbool.h> int main(int argc, char* argv[]) { printf("\n\nHi there.\n\nThis is a .exe test.\n\n If you are seeing this, it is successful.\n\n"); system("pause"); }
内容的提问来源于stack exchange,提问作者Gareth Swemmer
相关产品推荐
相关产品推荐

