最近在用VS2013写程序,把编译好的exe在别人的电脑上运行就会出现缺少msvcp文件不能运行的情况。在网上搜了一下,问题原因如下:
C/C++程序运行时需要标准库的支持,Windows下为msvcrt.dll(C运行时)和msvcp(C++运行时),Linux下为libc.so和libstdc++.so。Windows XP里面自带VC 6.0的运行时,如果用VC 6编译的话可以正常运行。
VS 2013的运行时必须额外安装,也就是vc2013 redistribution。也可以像你现在做的这样,编译时选择/MT,这时运行时将直接包含在你的执行文件中,就可以在任意机器上运行。这也是为什么你的文件变得非常大,因为标准库的实现被包括进去了。