Visual C++编译环境免安装命令行版

来源:互联网 发布:淘宝模版数据包 编辑:程序博客网 时间:2024/06/06 10:51

VC的IDE开发环境很好,但太大了,经常是2005/2008/2010装一大堆,占用几十G的空间。用惯了Linux的命令行方式,觉得小巧精致。于是想把VC的基本命令提取出来,也做一个绿色版本。

保留基本的编译命令,cl、lib、link、ml之类的。编译工程只能用nmake了。vcproj工程文件怎么办?用scons重写一个吧。(其实命令行也有个vcbuild)。

制作绿色版之前,首先要安装一个VC,再把其中用到的文件提取出来。或者直接快进到后面找下载链接。


Visual C++ 2008制作要领

VC 2008的最大问题是Visual Studio采用Side-by-Side方式发布,不能简单的把依赖的DLL着全就行了。

1. 复制C:\Program Files\Microsoft Visual Studio  9.0\VC\bin及其子目录1033,到新的vc9\bin目录

2. 在复制VC目录下的lib和include目录,到新的vc9目录下

3. 复制C:\Program Files\Microsoft Visual Studio 2008\Common7\IDE目录下的:msobj80.dll,mspdb80.dll, mspdbcore.dll, mspdbsrv.exe到vc9\bin

4. 在vc\bin生成manifest文件,名为Micrisoft.VC90.CRT.manifest,内容如下

<?xml version="2.0" encoding="UTF-8" standalone="yes"?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestversion="1.0">
    <noinheritable></noinheritable>
    <assemblyidentity name="Microsoft.VC90.CRT" publickeytoken="1fc8b3b9a1e18e3b" processorarchitecture="x86" version="9.0.21022.8" type="win32"></assemblyidentity>
    <file name="msvcr90.dll"></file>
    <file name="msvcp90.dll"></file>
</assembly>

5. 找到Windows\WinSxS目录下的x86_microsoft.vc90.crt_1fc8b3b9a1e18e3b_9.0.21022.8_…目录,复制其中的msvcr90.dll和msvcp90.dll到bin目录

Visual C++ 2010制作要领

VC 2010还在Beta阶段,不过据说已经决定不用SxS,直接用DLL发布了,所以制作简单点。

1-3和2008类似,复制bin, include, lib,复制Common7\IDE目录下的几个dll和exe

4. 到Windows\System32目录下找msvcr100.dll, msvcp100.dll,复制到bin

Windows SDK

VC的lib和include里面不带Windows的头文件和库,所以还需要把Windows SDK摘取出来。Windows SDK在安装的时候一般装在C:\Program Files\Microsoft SDKs\Windows\XX目录下,同样把其中的bin, lib, include目录复制出来,到一个新目录,比如win6sdk。

环境设置

影响C编译器的环境变量就三个,INCLUDE、LIB和PATH。设置好就可以编译了。假定上面我把VC 2008和Windows SDK分别复制到了vc9和win6sdk目录下,在与这两个目录的上级目录中,创建一个BAT脚本,假设叫vc9.bat,包含下面内容:

@echo offecho Setting environment Visual C++ 2010 set VCINSTALLDIR=%~dp0vc9set WindowsSdkDir=%~dp0win6sdk set INCLUDE=%WindowsSdkDir%\include;%VCINSTALLDIR%\includeset LIB=%WindowsSdkDir%\lib;%VCINSTALLDIR%\libset PATH=%FrameworkDir%\%FrameworkVersion%;%WindowsSdkDir%\bin;%VCINSTALLDIR%\bin;%PATH%

再创建一个BAT脚本,叫start-vc9.bat,包含下面一行:

start cmd /K %~dp0vc10.bat

在Windows资源管理器中双击start-vc9.bat就可以配置好环境变量,进入VC 2008的编译环境了。

下载

1. vc10.rar 21M 2010的命令行工具和include/lib打包 下载

需要和3解压到到一起用。双击start-vc10.bat打开一个命令行窗口,就可以用cl, nmake, link等命令了。VC需要的基本环境变量会自动设置。

2. vc9.rar 15M 2008的命令行工具和include/lib打包 下载

需要和3解压到一起用。双击start-vc9.bat打开命令行窗口,VC需要的环境变量会自动设置。

3. win7.rar 16M Windows 7.0 SDK的include/lib打包 下载

注意:命令行编译环境没有包含Debug版的CRT,所有的MFC、ATL的DLL。所以可能存在编译好的程序缺少DLL不能运行的问题。对于2008,可以下载一个VC相关SxS打包。缺DLL就到里面找(参见我的Side-by-Side笔记)。对于2010,由于已经废弃了SxS的发布方式,可以直接到网上下载缺的DLL。