自己动手制作VC++2010绿色版 [附codeblock环境配制补充]

转载出处忘记了.搜索标题出来很多,懒得排查原出处了    转载  转载  转载.

在原文基础上,补充下codeblock环境配制.见分割线后

先简略介绍下背景,

        公司电脑加密.安装软件必须申请管理员权限.于是网上查到vc绿化方法后加上codeblock解压即用,还算趁手. 记录下过程,以免忘记.以下为正文:

绿色版本需求:不需要安装即可使用,干净不带IDE,不带其他语言C#、F#开发工具,不带SqlServer相关开发工具,不带.NET4 SDK,

整个包较原版安装包小,支持编译调试版本的程序,支持x86、x64、以及x86交叉编译x64应用程序。

制作环境:

Windows 7 ultimate中文版本。

VS2010安装在默认的C:/Program Files (x86)/Microsoft Visual Studio 10.0/目录。

绿化环境在Z:/VC2010/目录。

1. 到MicroSoft官方网站下载 MicroSoft Visual Studio 2010 retail 30天试用版本,安装时选择只安装VC++工具,

包括x64开发包,但不包括IA64开发包。

测试运行无误,准备完毕。这原版VC++2010战用磁盘5.5G左右。

2. 创建VC++2010绿色版基础目录结构。

Z:/VC2010/bin/

Z:/VC2010/lib/

Z:/VC2010/include/

Z:/VC2010/atlmfc/

Z:/VC2010/crt/

Z:/VC2010/PlatformSDK/

Z:/VC2010/redist/

Z:/VC2010/system32

Z:/VC2010/SysWOW64/

Z:/VC2010/ide/

Z:/VC2010/scripts/

3. 拷贝VC++2010基本包文件

注:下面的说明把C:/Program Files (x86)/Microsoft Visual Studio 10.0/简写为CPMS,

把C:/Program Files (x86)/ 简写为CPF86。

把CPMS/目录下的altmfc, include,bin,lib,crt,redist目录拷贝到Z:/VC2010/

把CPF86/Microsoft SDKs/Windows/v7.0A/目录下的include,lib拷贝到Z:/VC2010/PlatformSDK/

把CPF86/Microsoft SDKs/Windows/v7.0A/bin/目录下的mt.exe, mt.exe.config, rc.exe, rcdll.dll 四个文件拷贝到Z:/VC2010/PlatformSDK/

4. 拷贝VC++2010中用到的附加库及程序

把C:/Windows/SysWOW64/msvcr100_clr0400.dll 拷贝到Z:/VC2010/SysWOW64/

把C:/Windows/System32/msvcr100_clr0400.dll 拷贝到Z:/VC2010/system32/

这两个文件是编译过程中COFF文件格式转换工具cvtres.exe使用的,x86,x64两个平台下使用两个不同的版本。

把CPMS/Common7/IDE/目录下的 msobj100.dll, mspdb100.dll, mspdbcore.dll, mspdbsrv.exe, mspdbst.dll 五个文件拷贝到Z:/VC2010/ide/

这几个文件是编译调试版本的程序或者库时乃至的程序。

5. 编写VC++运行环境变量脚本。

一共有4个要编写的脚本,分别为,

Z:/VC2010/vc2010.bat 运行环境启动入口脚本。

Z:/VC2010/scripts/vcvars32.bat x86运行环境相关变量设置脚本。

Z:/VC2010/scripts/amd64/vcvars64.bat x64运行环境相关变量设置脚本。

Z:/VC2010/scripts/x86_amd64/vcvarsx86_amd64.bat 在x86平台上交叉编译x64程序或者库运行环境相关变量设置脚本。

这四个脚本都有参考脚本,可在原版安装目录中找到。

a) Z:/VC2010/vc2010.bat

主要是注册绿色版VC2010的安装目录,然后根据不同的参数确定不同的运行平台,调用下面对应平台上的环境设置脚本。

set VCINSTALLDIR=Z:/VC2010

@echo off

if "%1" == "" goto x86

if not "%2" == "" goto usage

if /i %1 == x86       goto x86

if /i %1 == amd64     goto amd64

if /i %1 == x64       goto amd64

if /i %1 == ia64      goto ia64

if /i %1 == x86_amd64 goto x86_amd64

if /i %1 == x86_ia64  goto x86_ia64

goto usage

:x86

if not exist "%VCINSTALLDIR%/scripts/vcvars32.bat" goto missing

call "%VCINSTALLDIR%/scripts/vcvars32.bat"

goto :eof

:amd64

if not exist "%VCINSTALLDIR%/scripts//amd64/vcvars64.bat" goto missing

call "%VCINSTALLDIR%/scripts//amd64/vcvars64.bat"

goto :eof

:ia64

if not exist "%VCINSTALLDIR%/scripts/ia64/vcvars64.bat" goto missing

call "%VCINSTALLDIR%/scripts/ia64/vcvars64.bat"

goto :eof

:x86_amd64

if not exist "%VCINSTALLDIR%/scripts/x86_amd64/vcvarsx86_amd64.bat" goto missing

call "%VCINSTALLDIR%/scripts/x86_amd64/vcvarsx86_amd64.bat"

goto :eof

:x86_ia64

if not exist "%VCINSTALLDIR%/scripts/x86_ia64/vcvarsx86_ia64.bat" goto missing

call "%VCINSTALLDIR%/scripts/x86_ia64/vcvarsx86_ia64.bat"

goto :eof

:usage

echo Error in script usage. The correct usage is:

echo     %0 [option]

echo where [option] is: x86 ^| ia64 ^| amd64 ^| x86_amd64 ^| x86_ia64

echo:

echo For example:

echo     %0 x86_ia64

goto :eof

:missing

echo The specified configuration type is missing.  The tools for the

echo configuration might not be installed.

goto :eof

:eof

b) Z:/VC2010/scripts/vcvars32.bat

@if "%VCINSTALLDIR%"=="" goto error_no_VCINSTALLDIR

@echo Setting environment for using Microsoft Visual Studio 2010 x86 tools.

@set PATH=%VCINSTALLDIR%/BIN;%VCINSTALLDIR%/PlatformSDK/bin;%PATH%

@set PATH=%VCINSTALLDIR%/redist/x86/Microsoft.VC100.CRT/;%VCINSTALLDIR%/SysWOW64;%PATH%

@set PATH=%VCINSTALLDIR%/redist/Debug_NonRedist/x86/Microsoft.VC100.DebugCRT;%VCINSTALLDIR%/ide;%PATH%

@set INCLUDE=%VCINSTALLDIR%/ATLMFC/INCLUDE;%VCINSTALLDIR%/INCLUDE;%VCINSTALLDIR%/PlatformSDK/include;%INCLUDE%

@set LIB=%VCINSTALLDIR%/ATLMFC/LIB;%VCINSTALLDIR%/LIB;%VCINSTALLDIR%/PlatformSDK/lib;%LIB%

@set LIBPATH=%VCINSTALLDIR%/ATLMFC/LIB

@goto end

:error_no_VCINSTALLDIR

@echo ERROR: VCINSTALLDIR variable is not set.

@goto end

:end

c) Z:/VC2010/scripts/amd64/vcvars64.bat

@if "%VCINSTALLDIR%"=="" goto error_no_VCINSTALLDIR

@echo Setting environment for using Microsoft Visual Studio 2010 x64 tools.

@set PATH=%VCINSTALLDIR%/BIN/amd64;%VCINSTALLDIR%/PlatformSDK/bin/win64/amd64;%VCINSTALLDIR%/PlatformSDK/bin;%VCINSTALLDIR%/BIN;%PATH%

@set PATH=%VCINSTALLDIR%/redist/x64/Microsoft.VC100.CRT/;%VCINSTALLDIR%/System32;%PATH%

@set PATH=%VCINSTALLDIR%/redist/Debug_NonRedist/x64/Microsoft.VC100.DebugCRT;%VCINSTALLDIR%/ide;%PATH%

@set INCLUDE=%VCINSTALLDIR%/ATLMFC/INCLUDE;%VCINSTALLDIR%/INCLUDE;%VCINSTALLDIR%/PlatformSDK/include;%INCLUDE%

@set LIB=%VCINSTALLDIR%/ATLMFC/LIB/amd64;%VCINSTALLDIR%/LIB/amd64;%VCINSTALLDIR%/PlatformSDK/lib/x64;%LIB%

@set LIBPATH=%VCINSTALLDIR%/ATLMFC/LIB/amd64;%LIBPATH%

@goto end

:error_no_VCINSTALLDIR

@echo ERROR: VCINSTALLDIR variable is not set.

@goto end

:end

d) Z:/VC2010/scripts/x86_amd64/vcvarsx86_amd64.bat

@if "%VCINSTALLDIR%"=="" goto error_no_VCINSTALLDIR

@echo Setting environment for using Microsoft Visual Studio 2010 x64 cross tools.

@set PATH=%VCINSTALLDIR%/BIN/x86_amd64;%VCINSTALLDIR%/BIN;%VCINSTALLDIR%/PlatformSDK/bin;%PATH%

@set PATH=%VCINSTALLDIR%/redist/x86/Microsoft.VC100.CRT/;%VCINSTALLDIR%/SysWOW64;%PATH%

@set PATH=%VCINSTALLDIR%/redist/Debug_NonRedist/x86/Microsoft.VC100.DebugCRT;%VCINSTALLDIR%/ide;%PATH%

@set INCLUDE=%VCINSTALLDIR%/ATLMFC/INCLUDE;%VCINSTALLDIR%/INCLUDE;%VCINSTALLDIR%/PlatformSDK/include;%INCLUDE%

@set LIB=%VCINSTALLDIR%/ATLMFC/LIB/amd64;%VCINSTALLDIR%/LIB/amd64;%VCINSTALLDIR%/PlatformSDK/lib/amd64;%LIB%

@set LIBPATH=%VCINSTALLDIR%/ATLMFC/LIB/amd64;%LIBPATH%

@goto end

:error_no_VCINSTALLDIR

@echo ERROR: VCINSTALLDIR variable is not set.

@goto end

:end

6. 创建启动快捷方式。

一共有3个,分别为:

VC++2010_x86.lnk

VC++2010_x64.lnk

VC++2010_x86-amd64.lnk

i) VC2010_x86.lnk 属性设置

设置目标:%comspec% /k ""Z:/VC2010/vc2010.bat"" x86

起始位置:Z:/VC2010

ii) VC2010_x64.lnk 属性设置

设置目标:%comspec% /k ""Z:/VC2010/vc2010.bat"" amd64

起始位置:Z:/VC2010

iii) VC2010_x86-amd64.lnk 属性设置

设置目标:%comspec% /k ""Z:/VC2010/vc2010.bat"" x86_amd64

起始位置:Z:/VC2010

需要注意的是,这几个快捷方式的字体属性指定为NSimsun,不要使用点阵字体,否则在其他语言版本的系统上有问题。

现在需要使用不同环境的VC++2010只需要点击相应的启动快捷方式就可以进入对应环境的编译命令行了。

附后:

如果需要设置自定义的一些环境变量,可以修改vc2010.bat入口脚本头几行,设置可生效。


分割线




有了以上绿色版本,根据系统是32位还是64位分别根据环境变量,及bin文件位置

01**  CB=>设置=>编译器=> 选择VC2010 编译器   根据对应平台填写 "附加路径" ,如果单独一个个设置路径是错的

02**  搜索目录子页面       编译器,链接器分别填写 绿化后 BAT中INCLUDE LIB环境变量的值

03***  最容易忽略的,资源编译器,要填写SDK/INCLUDE   ,  MSVC/INCLUDE 路径 ,否则带资源文件编译时报错.  另外 Rc.exe文件所在路径要添加到 "01**" 步骤的  "附加路径" 里 . 点rc.exe右边按钮设置路径是错的

至此可以愉快的开始编程了,有问题再补充 .

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 211,884评论 6 492
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,347评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 157,435评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,509评论 1 284
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,611评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,837评论 1 290
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,987评论 3 408
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,730评论 0 267
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,194评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,525评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,664评论 1 340
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,334评论 4 330
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,944评论 3 313
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,764评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,997评论 1 266
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,389评论 2 360
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,554评论 2 349

推荐阅读更多精彩内容