VS2010静态编译生成的.exe可执行文件可以直接在其他电脑上运行,无需安装
?
静态编译:在编译可执行文件时,将可执行文件需要调用的对应动态链接库(.so)的部分提取出来,链接到可执行文件中,这样可执行文件就可以运行不依赖动态链接库。
有两种编译方式:
第一种:
一般可以配置以下两项:
1.项目->配置属性->常规->MFC用法:在静态库中使用MFC。
2. 项目->配置属性->C/C++->代码生成->运行时库:选择多线程调试(/MT)。
编译时,在下拉框中选择release和win32(这个选择是在工具栏的debug框中,一般我们使用debug模式)
执行编译生成计划后,在项目目录下的release文件夹中找到.exe文件,就可以在其他电脑上运行了。
第二种:
设置:
1.项目->配置属性->常规->MFC的使用:在静态库中使用MFC
2. 项目->配置属性->C/C++->代码生成->运行时库:选择多线程调试(/MTd)。
?
编译时选择debug、win32
不知道为什么,当我选择第二种设置方式时,编译器会报错:“文件无效或损坏”
? ? ?最近在学习C++,看到一本书推荐使用命令行编译源程序,于是自己尝试着使用。让我在这里总结一下这个过程。欢迎大家给我建议,互相学习。同时也感谢网友们对我的帮助!
? ??1.将cl.exe所在路径添加到PATH环境变量中? (cl.exe在安装路径\VC\bin下)
? ? 2.将lib文件夹路径添加到环境变量中? ? ? ? ? ? (lib在安装路径\VC中)
? ? 3. 将包含文件夹路径添加到环境变量中? ? ? (包含在安装路径\VC中)
? ? 4.切换到CMD中源代码的路径
? ? 5.使用cl XX.cpp /EHsc命令编译源码
? ? 6.如果提示找不到XX,请下载对应的文件(库文件放在lib文件夹下,其他一般都在include文件夹下)
? ? 7、已经提示找不到XX。将对应的文件路径添加到PATH
? ?最后附上我一直在找的Kernel32.Lib文件。有需要的朋友可以尝试一下!
设置环境变量、path、lib、include;
网上大部分资料都说设置完这三个步骤就可以了,但是对我来说不行
我还要补充一句
>调用“%VS100COMNTOOLS%”vsvars32.bat??? <==在cl运行时设置一些环境变量
但是这是暂时的,关闭这个dos后就会失效;
最后用了安装vs2010后自带的Visual Studio Tools下的几个dos windows
其实是调整了vcvarsall.bat,只是参数不一样
这是 64 位版本 %comspec% /k ""C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\vcvarsall.bat"" amd64