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;
}
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
pause
del *.obj *.exe ::这一行是用来删除生成的obj和exe文件的,可以不加
exit
2.bat
@echo off
start 1.bat %1
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"]
}
]
}
"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 而命令行以系统命令窗口弹窗显示