Sublime Text 2结合VS2010配置C C++编译

本文参考以下文章 特此谢谢
http://www.cnblogs.com/akira90/archive/2013/01/02/2842571.html
因遇到错误,浪费一个小时才解决
一、利用VS2010搭建命令行编译环境
台式PC,WIN7系统 + VS2010
1. 在“环境变量”里面创建三个系统变量
  在命令行输入set命令会有对应的VS信息,vs2010是VS100COMNTOOLS
<1>名字: VS100Common
       值: C:\Program Files\Microsoft Visual Studio 10.0\Common7
<2>名字: VS100VC
       值: C:\Program Files\Microsoft Visual Studio 10.0\VC
<3>名字: VS100SDK
       值: C:\Program Files\Microsoft SDKs\Windows\v7.0A
2. 创建三个用户变量
<1>名字: PATH
值 :%VS100VC%\BIN;%VS100Common%\IDE;%VS100Common%\TOOLS;%VS100SDK%\BIN;%PATH%
<2>名字: INCLUDE
值 :%VS100VC%\INCLUDE;%VS100VC%\ATLMFC\INCLUDE;%VS100SDK%\INCLUDE;%INCLUDE%
<3>名字: LIB
值 :%VS100VC%\LIB;%VS100VC%\ATLMFC\LIB;%VS100SDK%\LIB;%LIB%
3. 打开终端运行cl,如果没有提示非命令的话,如下图配置成功。不行的话,重启电脑。
4. 随便写一个程序:
#include <iostream>

using namespace std;
int main()

{
    unsigned int a = ~0;
    if( a>65536 )
    {
      cout<<"32 bit"<<endl;
    }
    else
    {
      cout<<"16 bit"<<endl;
    }
    return 0;
}

 5. 编译运行:结果如下图

 

 

二、Sublime Text2搭建C/C++开发环境

1. 打开Sublime Text2,选择tools,然后选择Build System,然后选择 New Build System。
然后在里面输入下面的代码:
    "cmd": ["CL", "/Fo${file_base_name}", "/O2", "${file}"],
    "file_regex": "^(..[^:]*):([0-9]+):?([0-9]+)?:? (.*)$",
    "working_dir": "${file_path}",
    "selector": "source.c, source.c++",
    "encoding":"cp936",
    "variants":
    [
        {
            "name": "Run", 
            "cmd": ["2.bat", "${file_base_name}.exe"]
        }
    ]
}


2. 然后保存为:MSComplie.sublime-build,注意后缀一定为sublime-build,名字可以随便取,便于识别就好。
上面的代码仅仅是在原来代码的基础了针对windows平台下CL的修改了两节,同时加了几个逗号,并且修改了编译环境的编码,因为默认的Sublime Text 2的编码是UTF-8。。
代码的原理很简单,就是在命令行里编译源文件的命令 CL /FoObjectName /O FileName
打开上面那个demo测试下:ctrl+B编译
 

Ctrl+Shift+B运行程序界面如下:

 

果编译运行时遇到如下错误:

[Error 2] 
[cmd: [u'CL', u'/Fotest', u'/O2', u'C:********
***********
配置文件没有生效,重启Sublime Text 2就好。
3. 参考http://isharehello.blog.163.com/blog/static/218699419201403102856917/
MSComplie.sublime-build 也可以这么写
<1> 创建以下两个bat文件,丢到添加了环境变量的文件中,我的是直接丢在system32下的。
  1.bat

 @echo off

%1
pause
del *.obj *.exe ::这一行是用来删除生成的obj和exe文件的,可以不加
exit

 

  2.bat
@echo off
start 1.bat %1
 

<2> MSComplie.sublime-build粘贴以下内容

 

    "cmd": ["CL", "/Fo${file_base_name}", "/O2", "${file}"],
    "file_regex": "^(..[^:]*):([0-9]+):?([0-9]+)?:? (.*)$",
    "working_dir": "${file_path}",
    "selector": "source.c, source.c++",
    "encoding":"cp936",
    "variants":
    [
        {
            "name": "Run", 
            "cmd": ["2.bat", "${file_base_name}.exe"]
        }
    ]
}

<3> 同样Ctrl+B Ctrl+Shift+B 而命令行以系统命令窗口弹窗显示

 

posted @ 2014-07-24 11:17  水上云天  阅读(593)  评论(1编辑  收藏  举报