首页 > 程序开发 > 软件开发 > C++ > 正文
sublime text 3 配置c++编译与运行环境
2017-01-07       个评论      
收藏    我要投稿

之前安装了sublime来写python,最近发现用它写c++也是不错的选择.

但有个问题就是,未经配置的话,它只能编辑,不能编译和运行.

于是花了一天,各种折腾,终于配置到自己满意了.

1.尝试编译

首先,sublime的编译快捷键是ctrl+B和ctrl+shift+B.对应下图的这两个选项,至于这两个选项有什么不同,我们先不说.

\

第一次按ctrl+B的话,它会弹出这个窗口,我们先选择第一个.

\

选择了之后,你会发现编译失败,失败的标志就是那个"exit code 1".

\

细看第二行字,你会发现其实sublime就是执行一个cmd命令来编译的,并且编译器默认是g++.

因此我们需要一个g++,并且要把它添加到环境变量的路径里.

2.配置编译环境

g++需要安装MinGW,当然你也可以安装devc++或者codeblock这样的IDE,它们会附带一个MinGW.

有MinGW后,你需要找到g++在MinGW中的位置.我用的是devc++附带的MinGW,路径如上图.

\

g++在不同的MinGW的位置可能有一点点出入,但大概都会在一个bin文件夹里,真找不到就直接文件搜索吧.

找到这个路径之后要把它添加到环境变量的路径里,为什么要这样做?

添加路径前:

\

添加路径后:

\

在添加路径前,你直接打开cmd运行g++会提示不是命令也不是程序,这是因为windows在环境变量提供的路径里找不到g++这个程序.

在添加路径后,输出不同了,虽然好像也是个错误,但这是因为未提供参数而已.也就是说,windows找到了g++并且运行了它.

添加路径到环境变量,其实就是让cmd无论在哪里都能运行这个路径里的程序.这样做有利也有弊,它可能会带来名字空间的污染.

添加环境变量的方法是:我的电脑右键->属性->高级系统设置->高级->环境变量->系统变量里的Path.

(PS:下图是win10版本的窗口,其他windows版本有较大不同)

\

3.使用方法

添加完环境变量后,重启sublime,按下ctrl+B,发现下面只有一行字.

\

 

再看看放代码的文件夹,居然多了一个exe.这说明编译成功!

\

 

嗯,是能编译了,但怎么运行呢?按ctrl+shift+B,你会发现那个菜单又弹出来了.

\

我们选择下面的选项,看看下面的文本框,是不是有"Hello,world!"了?!

\

这时候你再按ctrl+B,你发现"Hello,world!"还在.

事实上,ctrl+B并不是编译的快捷键,它是编译或者编译运行的快捷键.

当你按ctrl+shift+B的时候,那两个选项就是让你选择是编译还是编译运行的,选择哪个ctrl+B执行的操作就是那个命令,说白了ctrl+B就是执行你最近一次选择的相关操作.

4.编译+运行+编译运行+黑框

如果是一般人,可能做到这里就完了,但笔者总是有很多奇怪的需求.

比如说,运行的话,每次都要重新编译,是会浪费时间的.

还有,sublime的文本框太小了,并且在这个框没法正常输入,因此我希望它能弹出一个黑框.

怎么做,我们需要自己建一个编译系统.

\

点击它后,你发现它会帮你新建一个文件,而不是弄一个窗口出来让你选择参数之类的.

\

嗯,这就是sublime的特点,它把所有的选项都放在了文件里.对某些人来说,这样设置起来会很自由,但对新手可能不太友好.

百度找了一段json,直接拷贝上去.

{
"cmd": ["g++", "${file}", "-o","${file_path}/${file_base_name}"],
"file_regex": "^(..[^:]*):([0-9]+):?([0-9]+)?:?(.*)$",
"working_dir": "${file_path}",
"encoding":"cp936",
"selector": "source.c++",
"variants":
[
{
"name": "Run",
"cmd": ["cmd","/C","start","cmd","/c", "${file_path}/${file_base_name}.exe &pause"]
}
]
}
这里有一个注意点,selector那一项要填"source.c++"而不是"source.cpp",否则sublime不会将这个编译系统识别成c++编译器.

然后ctrl+s保存,默认的路径应该就是这里,然后名字改成"CPP.sublime-build",据说好像CPP一定要大写.

(PS:这个路径是C:\Users\xxx\AppData\Roaming\Sublime Text 3\Packages\User,其中xxx是你的windows用户名字)

\

保存了之后,先重启一下.然后在cpp文件那里键入ctrl+shift+B,惊喜地发现了我们新建的编译系统.

结合前面的代码我们可以知道,第三个选项是编译,而第四个选项是运行.

\

点击第三个,出现了和第一个一样的一行Finished,而点击第四个,则出现了黑框!

\

好,差一个编译运行就大功告成了.虽然上面第二个选项是编译运行,但它不是在黑框里输入输出.

这个过程我弄了非常久,由于对sublime的配置和cmd命令不是很熟,最后弄了两个文件去实现.

修改CPP.sublime_build

{
"cmd": ["g++", "${file}", "-o","${file_path}/${file_base_name}"],
"file_regex": "^(..[^:]*):([0-9]+):?([0-9]+)?:?(.*)$",
"working_dir": "${file_path}",
"encoding":"cp936",
"selector": "source.c++",
"variants":
[
{
"name": "Run",
"cmd": ["cmd","/C","start","cmd","/c", "${file_path}/${file_base_name}.exe &pause"]
},
{
"name": "Compile and Run",
"cmd": ["sublime_cpp_cr.bat","${file}","${file_path}/${file_base_name}"]
}
]
}
新建sublime_cpp_cr.bat
@echo off
g++ %1 -o %2 && cmd /C start cmd /c sublime_cpp_cr2 %2.exe
新建sublime_cpp_cr2.bat
@echo off
%1
pause
上面两个bat文件放在g++的同一目录,或者任意的环境变量路径里.

然后重启,一切都美好了起来!

\

由于我怎么在CPPsublime_build里弄编译运行的命令都会出错,于是我直接让它运行一个bat.

写好bat后,发现黑框要么闪退,要么不会消失.我想要的效果是,最后弹出一个"请按任意键结束",当我按一个键后,黑框会自动消失.

折腾了很久后,发现再加一个bat就行了~!

点击复制链接 与好友分享!回本站首页
上一篇:C++ Notes-Inheritance-06
下一篇:C++ —— C++内联函数
相关文章
图文推荐
文章
推荐
点击排行

关于我们 | 联系我们 | 广告服务 | 投资合作 | 版权申明 | 在线帮助 | 网站地图 | 作品发布 | Vip技术培训
版权所有: 红黑联盟--致力于做实用的IT技术学习网站