VS编译的程序在其他机器上运行

链接的时候分静态链接和动态链接两种。

一、静态连接的话,基本上就不需要向目标机器拷贝附加的文件了,方法如下:

1、修改编译选项,将/MD或/MDd 改为 /MT或/MTd,这样就实现了对vc运行时库的静态链接,在运行时就不再需要vc的dll了(多线程)。

项目—属性—配置属性—C/C++ —代码生成—运行库。

VS编译的程序在其他机器上运行_第1张图片
vs 截图

2、工程->属性->配置属性->常规->mfc的使用,选择“在静态库中使用mfc”。

二、动态连接的话,需要在目标机器上拷贝mfc所依赖的动态库。根据你使用的vc版本不同而不同:   VS2013的话,一般包括mfc120.dll、msvcp120.dll等;VS2013/VS2014/VS2015/VS2016等版本可直接到微软去下载对应的运行时环境安装包,安装后就可以了。如下为部分运行环境的安装文件名称(针对32位版本windows的)。可以根据操作系统版本和vc版本进行选择下载和安装

vcredist_arm.exe

vcredist_x64.exe

vcredist_x86.exe

VS2013的话,还是安装以上的运行环境比较保险。

D:\vs2013\VC\redist\x86——.dll 动态文件的路径

D:\vs2013\VC\redist\2052——.exe 文件的路径


———————————————————————————————————————


1、工程属性中:配置属性-常规,MFC使用类型选择“在共享的DLL中使用MFC”;

        C/C++ -代码生成-MFC的使用选择“多线程DLL(/MD)”这种情况下,若直接将exe文件放到目标机器运行,则需要目标机器安装相应的开发平台或者将生成exe程序的依赖dll文件复制到目标机器的程序运行目录下;若用到第三方库,也要复制相应的dll文件。其中依赖的dll文件可以通过Dependency查看。简单的说,若选择这种方式,需要和exe程序和所有需要的系统和第三方dll文件一起打包。


———————————————————————————————————————

2、工程属性中:配置属性-常规,MFC使用类型选择“在静态库中使用MFC”;

        C/C++ -代码生成-MFC的使用选择“多线程(/MT)” 这种情况下,exe程序中已经包含了开发平台单独需要的dll文件。若不包含第三方库,可以将exe复制到目标机器直接运行了;

你可能感兴趣的:(VS编译的程序在其他机器上运行)