VS开发完程序后需要发布,即要运行在没有装VS的电脑上。两个思路
1.使用静态编译 2.动态编译
先说静态编译:以VS2012为例,首先选择生成->项目属性->常规 在常规中将
编译的库选成MFC静态编译库。再到C++选项->生成代码 将编译项变成MTD
编译程序,如果是release模式,则在其文件夹下生成的可执行文件就可以直接
在其它电脑上运行。这也是程序发布最简单的办法。
动态编译:
生成->项目属性->常规 在常规中将
编译的库选成MFC静态编译库。再到C++选项->生成代码 将编译项变成MDD
编译程序。如果是release模式,则在其文件夹下生成的可执行文件。但是这个可执行文件
不会直接在其它电脑上运行。它需要一些其它的动态库。
如果获得这些动态库,一个简单的办法:以VS2012为例,下载对应的VS2012运行库,安装
到其它电脑上。或是按以下路径
C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\redist\x86\Microsoft.VC110.MFC和
C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\redist\x86\Microsoft.VC110.CRT找到
这两个文件夹下所有的dll文件,复制到release目录下。这时候,复制release目录到其它计算机就
可以直接运行。
那么即然是发布程序,这样做还有些粗糙。最好做一个安装包。做的工具有install shield,inno setup等。
作为一个初始入门者,做的就是上面讲到的可执行程序和动态库包含到安装包里。inno setup制作的流程
要更简单一些。
初次做安装包,常见的问题:
1.需不需要 .NET?
不是VS2012开的程序就一定要.NET。如果你自己不清楚,是否需要,制作安装包时,就不选择.NET.
2.*.dll没有在windows上运行,请联系供应商什么的?
就将其它计算机上的对应 dll复制到system32里,或安装VS2012运行库
3.VS 报_AFX_DLL 需要-Md设置,而此时你在做静态编译
原因是没有在项目属性->常规里选择使用MFC静态库。
走过留下脚印,方便自己,方便后来者。谁让我们都是苦B的程序员呢。