VS2010工程静态编译

问题:使用VS做的工程生成的exe文件在其他机器上运行时,出现缺少各种dll的情况,如MSCVP100D.dll等


通过查阅资料,可以找到编译类型的有关知识:
编译过程分为静态编译和动态编译两种。 
动态编译的可执行文件需要附带一个的动态链接库,在执行时,需要调用其对应动态链接库中的命令。所以其优点一方面是缩小了执行文件本身的体积,另一方面是加快了编译速度,节省了系统资源。缺点一是哪怕是很简单的程序,只用到了链接库中的一两条命令,也需要附带一个相对庞大的链接库;二是如果其他计算机上没有安装对应的运行库,则用动态编译的可执行文件就不能运行。
  静态编译就是编译器在编译可执行文件的时候,将可执行文件需要调用的对应动态链接库(.so)中的部分提取出来,链接到可执行文件中去,使可执行文件在运行的时候不依赖于动态链接库。所以其优缺点与动态编译的可执行文件正好互补。


回到上面的问题,可以发现使用静态编译应该可以解决问题
方法:使用Release版本的静态编译
步骤:
(1)解决方案配置选择release
(2)项目 -> 配置属性->常规->MFC的使用:在静态库中使用MFC。
 项目 -> 配置属性->C/C++->代码生成->运行库 :选择/MT。
ok.


你可能感兴趣的:(C/C++)