---转载:http://hi.baidu.com/liu_haitao/item/e2157ac3a3c32a0bc610b253
让VC编译出来的程序不依赖于msvcr80.dll/msvcr90.dll/msvcr100.dll等文件
正常情况下,当我们用VC编译出一个Console/Win32类型项目的exe程序时(这里暂不考虑MFC程序),会依赖于msvcrxx.dll文件(xx为不同VC对应的版本号,VC2005为80,VC2008为90,VC2010为100),发布程序的时候,就需要把对应的dll也copy过去,比较不方便。
通过以下的方法,可以让exe不依赖于这些dll(不过生成的exe会大很多)
以VC2012为例,切换到解决方案视图,在项目上右击,选择属性,配置选项选中Release,依次点击配置属性->C/C++->代码生成->运行库,选择/MT即可。以Release方式重新Build项目,在Release文件夹下即可生成不依赖于msvcr100.dll的exe文件。
下面简单说明Runtime Library四个选项的含义:
(D表示Dll,而d表示debug版本)
MT(Multi-threaded):多线程版本
MTd(Multi-threaded debug):多线程调试版本
MD(Multi-threaded Dll):多线程Dll版本
MDd(Multi-threaded debug debug):多线程调试Dll版本