让VC编译出来的程序不依赖于msvcr80.dll/msvcr90.dll/msvcr100.dll等文件

---转载: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版本

上一篇:C#获取程序路径


下一篇:[WinAPI] API 12 [获取程序所在的目录、程序模块路径,获取和设置当前目录]