警告
本文最后更新于 2019-01-05,文中内容可能已过时。
在 Sublime Text 3 编辑器里实现对 C/C++ 文件的编译与运行。
干中学
最近在学习一个 C++
项目,需要重新把以前的课本拿起来。学习的最好方法,尤其是编程技能的学习,就是对照着教材,边学边练,即 「Learning by doing」。这是我多年以来领悟到的最好经验。
对于 c/C++
这类编译语言,需要在编写完源文件(source file)后,使用编译器进行编译,生成相应的可执行文件(executable file)。因此,一个既能提供高效文本编辑环境、同时又能提供快速编译功能的「软件」,对于实现项目开发是极为关键的。
Sublime
编辑神器
基于使用习惯,我一般都是在 Sublime
进行文本的编辑,然后通过使用支持相关语言处理的配套插件,进行程序开发。这么多年来,Sublime
已经发展成了我得心应手的编辑器与开发环境。我之前有介绍过如何配置,今天这篇文章则介绍如何配置 C/C++
开发环境。
新建配置文件
在 “Tools -> Build System”,点击 “New Build System”,会自动弹出一个文件,我们在这里写入相应的配置方案:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
|
{
"cmd": ["g++ -ggdb3 -std=c++11 -Wall ${file} -o ${file_base_name}"],
"file_regex": "^(..[^:]*):([0-9]+):?([0-9]+)?:? (.*)$",
"working_dir": "${file_path}",
"selector": "source.c, source.c++",
"shell": true,
"variants":
[
{
"name": "Run",
"cmd": ["${file_path}/${file_base_name}"]
},
// ,
// {
// "name": "RunInShell",
// "cmd": ["gnome-terminal -x bash -c '${file_path}/${file_base_name};read' "]
// }
{
"name": "Build_Project",
"cmd": ["g++ -ggdb3 -std=c++11 -Wall ${file_path}/*.cpp -o ${file_base_name}"]
}
]
}
|
命令后保存到默认的文件夹^[一般在~/.config/sublime-text-3/Packages/User
]。在这里:
- 在
cmd
命令里设置 gcc/g++
需要指定的参数,如 -ggdb3
、-std=c++11
、-Wall
等,可以方便的我们需要的配置集合到一个命令里
- 指定运行
shell
- 同时,我们还指定其他的可选
variants
,即这里使用到的 Run
模式,可以在源文件编译结束后,执行程序,并把结果直接输出到 Sublime
的 console
界面。
- 当然,如何需要调试带有**输入(cin)**的程序,我们也可以再添加
RunInShell
模式。
同样,我们也可以相应的配置 c11
运行环境
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
|
{
"cmd": ["gcc -ggdb3 -std=c11 -Wall ${file} -o ${file_base_name}"],
// 如果是工程项目
// "cmd": ["gcc -ggdb3 -std=c11 -Wall ${file_path}/*.c -o ${file_base_name}"],
"file_regex": "^(..[^:]*):([0-9]+):?([0-9]+)?:? (.*)$",
"working_dir": "${file_path}",
"selector": "source.c",
"shell": true,
"variants":
[
{
"name": "Run",
"cmd": ["${file_path}/${file_base_name}"]
},
// ,
// {
// "name": "RunInShell",
// "cmd": ["gnome-terminal -x bash -c '${file_path}/${file_base_name};read' "]
// },
{
"name": "Build_Project",
"cmd": ["gcc -ggdb3 -std=c11 -Wall ${file_path}/*.c -o ${file_base_name}"]
}
]
}
|
调试
我们可以在编辑一个 C/C++
文件后,直接调用 Ctrl+B
来编译文件,使用 Ctrl+Shift+B
选择指定的运行方式。
设置快捷键
在 Sublime
里,我们可以十分方便的根据个人偏好,设置我们常用的一些快捷键。比如,运行一个已经编译好的 C/C++
可执行文件,我们就可以使用 F1
实现直接运行该文件。
1
|
{"keys": ["f1"], "command": "build", "args": {"variant": "Run"}}
|
其中,参数 Run
就是我们在 Build System
里面设置的 ‘variant’。
终结一下,我现在处理 C/C++
项目的基本流程:
- 编辑一个源文件
.cpp
- 使用
Ctrl+B
编译该文件
- 使用
F1
运行文件,直接把相应的结果显示出来。