C/C++程序移动到未安装开发环境电脑运行问题

本文探讨了C++编译时选择不同运行库配置(/MT, /MTd, /MD, /MDd)对生成的EXE文件的影响。/MT和/MTd选项生成的EXE仅依赖kernel32.dll,可在无开发环境的电脑上运行,而/MD和/MDd则依赖vcruntime140.dll等动态库,可能导致运行时错误。理解这些配置差异对于确保程序的移植性和运行时环境的兼容性至关重要。
摘要由CSDN通过智能技术生成

目录

运行库选择多线程(/MT)配置,生成的exe所依赖的动态库

多线程调试(/MTD)

多线程DLL(/MD)

 多线程调试DLL(/MDd)​ ​


需要知道

多线程调试Dll (/MDd) 对应的是MD_DynamicDebug

多线程Dll (/MD) 对应的是MD_DynamicRelease

多线程(/MT) 对应的是MD_StaticRelease

多线程(/MTd)对应的是MD_StaticDebug

运行库选择多线程(/MT)配置,生成的exe所依赖的动态库

多线程调试(/MTD)

多线程DLL(/MD)

 多线程调试DLL(/MDd) 

可以发现如果使用多线程(/MT)或者多线程调试(/MTd)生成的exe文件仅仅依赖kernel32.dll文件,而未安装开发环境的电脑中是有该动态库的,所以exe文件是可以在其他电脑上运行的

而对于多线程DLL(/MD)和多线程调试DLL(/MDd)生成的exe文件依赖于vcruntime140.dll、kernel32.dll等文件,而未安装环境的电脑中是没有该库文件的,所以运行时就会提示找不到动态库的错误

未安装开发环境电脑搜索kernel.dll结果

运行多线程调试DLL(/MDd)生成的exe文件

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值