链接的时候分静态链接和动态链接两种。
一、静态连接的话,基本上就不需要向目标机器拷贝附加的文件了,方法如下:
1、修改编译选项,将/MD或/MDd 改为 /MT或/MTd,这样就实现了对vc运行时库的静态链接,在运行时就不再需要vc的dll了(多线程)。
项目—属性—配置属性—C/C++ —代码生成—运行库。
![](https://img.haomeiwen.com/i12224026/f98fab770563e79f.png)
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复制到目标机器直接运行了;
网友评论