提取VS的Win32SDk用C/C++编译器

来源:互联网 发布:bim施工现场布置软件 编辑:程序博客网 时间:2024/06/06 10:43


微软的VS确实好用,但是VS安装太麻烦,安装完了还占一大把空间,没法随身携带。(有一次在网吧安装VS安了2个小时都没安完。。。)

所以,我就想,有没有一种方式可以让我可以随时随地地享受Win32SDK开发的乐趣呢?我知道VS有IDE和控制台两种编译选择,那么,何不把VS的C/C++编译器提取出来放U盘里,不就可以带着编译器满天下跑了吗?于是经过一番研究,果然可行!

首先,新建一个文件夹,位置随便,我的是“D:\vs12c\”

然后,打开VS的安装目录,当然不是IDE的目录了,是VS的根目录,进入“VC”目录(C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC),可以找到“bin”、“include”、“lib”三个目录,拷贝到我们的文件夹里“D:\vs12c\”

(bin文件夹是VS的C/C++编译器的核心部分,include是C/C++运行时函数和标准库的头文件,lib是C/C++的库文件,bin目录中的文件如图,其中cl.exe是编译器,link.exe是连接器,那个x86_amd64,x86_arm等等是交叉编译器,提供在32位下编译64位和arm的程序)

接着,因为我们要进行的是Win32SDK编程,不是单纯地玩C/C++,所以,我们需要WindowsSDK的支持!那么,要怎么办呢?

VS安装的时候,WindowsSDK(貌似是精简版的)就已经安装好了(平时VS编译时也会用的哦,只是我们可能没注意)

进入开始菜单->应用(所有程序),找到“Windows Software Development Kit”,打开他,进入到WindowsSDK的目录(C:\Program Files (x86)\Windows Kits\8.1),然后把lib和include两个复制到“D:\vs12c\sdk”下面。

然后,因为如果我们编程的时候需要用到rc资源,那么还需要进入WindowsSDK,进入“bin\x86”目录,把rc.exe和rcdll.dll考到“D:\vs12c\bin\”下面(没错就是bin下面)

这里有必要说一句VS2005和VC98的rc就在VS\VC\bin下面了,不用到SDK里复制了。

最后到关键的地方了,我们知道,要用VS的控制台编译器,必须设置好环境变量,这个环境变量设置不正确,编译器就没法用,VS已经给我们提供了一个自动加载环境变量的bat了,但是这个bat加载的目录都是VS的安装目录,我们提取的编译器显然是不能直接用的,我本来想的是改写这个bat,但是打开后我也是醉了。

于是在这个地方傻眼了,这咋改?≥﹏≤,但天无绝人之路,认真读了一下,突然发现,编译器无非就是需要这几个环境变量:“编译器目录”、“头文件目录”、“库文件目录”,之所以这个bat这么复杂,是因为这个bat还考虑到了MFC和其他的情况,对于我来说是不需要的。那么直接用绝对路径加载这几个环境变量是不是就好了?答案是肯定的!于是写一简单的bat,叫f.bat放到bin目录下。内容如下:

====================================================

@echo Using Microsoft Visual Studio 2013 x86 tools.

@set PATH=D:\vs12c\bin;%PATH%

@set INCLUDE=D:\vs12c\include;D:\vs12c\SDK\include\um;D:\vs12c\sdk\Include\shared;%INCLUDE%

@set LIB=D:\vs12c\lib;D:\vs12c\SDK\lib\winv6.3\um\x86;%LIB%

@echo 环境变量已加载

=====================================================

无非就是把几个目录加载一下,值得一提的是,SDK的头文件和库文件目录,因为我用的8.1版本的SDK,里面还有Metro应用的头文件和库文件呢。所以,头文件目录用带Windows.h,WinBase.h,Winuser.h等在的目录,库文件目录用带gdi32.lib,user32.lib等的目录(注意是x86版的)就没问题了。

对于VS2010,我也提取了编译器,我做的f.bat就是这样的了:

=====================================================

@echo Using Microsoft Visual Studio 2010 x86 tools.

@set PATH=D:\cc2\bin;%PATH%

@set INCLUDE=D:\cc2\include;D:\cc2\SDK\include;%INCLUDE%

@set LIB=D:\cc2\lib;D:\cc2\SDK\lib;%LIB%

@echo 环境变量已加载

=====================================================

到了鸡冻人心的时刻了,使用自己提取的编译器,与VS的IDE编译有一些不同的地方,请见下篇。

0 0