Sublime Text 3直接编译执行C/C++程序

Posted tupelo-shen

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Sublime Text 3直接编译执行C/C++程序相关的知识,希望对你有一定的参考价值。

1 工作环境
(1)PC system:Ubuntu12.04LTS。
(2)编辑器版本:Sublime Text 3
2 实现目的
背景就是自己最近开始使用Sublime Text 3编辑代码,发现非常好用,也被它强大的插件功能所吸引。但是,自己在编辑完C/C++代码后使用sublime自带的build并不好用,于是打算自己定制一个单文件C/C++编译命令。
3 定制C编译
(1)在sublime工具栏中,选择“工具“->“编译系统“->“新建编译系统“,会打开文件名称为“Untitled.sublime-build“文件。对其进行编辑,加入下面的代码,保存为“myC.sublime-build“,路径为默认路径就可以了。


    //"shell_cmd": "make"
    "working_dir": "$file_path",
    "cmd": "gcc -Wall \\"$file_name\\" -o \\"$file_base_name\\"",
    "file_regex": "^(..[^:]*):([0-9]+):?([0-9]+)?:? (.*)$",
    "selector": "source.c",

    "variants": 
    [
           
        "name": "Run",
            "shell_cmd": "gcc -Wall \\"$file\\" -o \\"$file_base_name\\" && \\"$file_path/$file_base_name\\""
        
    ]

保存后,你会在sublime的“工具“->“编译系统“->“新建编译系统“下看到myC的build系统。
(2)编辑简单的C代码,进行测试

// 文件名称:test_c_build.c
#include <stdio.h>

int main(int argc, char const *argv[])

    printf("hello world!\\n");
    return 0;

按下组合键“Ctrl“+“Shift“+“b“就会弹出编译命令选择窗口
选择“myC-Run“编译,结果就会出现在sublime下方的控制台上,如下:

4 定制C++编译
C++的过程与C一样,只是新建编译系统时的文件内容有些不同而已:


    // "shell_cmd": "make"
    "encoding": "utf-8",
    "working_dir": "$file_path",
    "shell_cmd": "g++ -Wall -std=c++0x \\"$file_name\\" -o \\"$file_base_name\\"",
    "file_regex": "^(..[^:]*):([0-9]+):?([0-9]+)?:? (.*)$",
    "selector": "source.cpp",

    "variants": 
    [
           
        "name": "Run",
            "shell_cmd": "g++ -Wall -std=c++0x  \\"$file\\" -o \\"$file_base_name\\" && \\"$file_path/$file_base_name\\""
        
    ]

5 myC和myC-Run的区别就是myC只编译,不执行;而myC-Run,编译后直接执行。
6 解决sublime自带控制台无法输入的问题
因为sublime自带控制台无法输入,所以如果程序用到cin等函数,程序无法执行。在windows系统下需要调用cmd.exe,将控制台交于cmd,所以需要在编译配置文件时,添加调用cmd的命令。
将上面的myC++.sublime-build修改如下,


    // "shell_cmd": "make"
    "encoding": "utf-8",
    "working_dir": "$file_path",
    "shell_cmd": "g++ -Wall -std=c++0x \\"$file_name\\" -o \\"$file_base_name\\"",
    "file_regex": "^(..[^:]*):([0-9]+):?([0-9]+)?:? (.*)$",
    "selector": "source.cpp",

    "variants": 
    [
           
        "name": "Run",
            "shell_cmd": "g++ -Wall -std=c++0x  \\"$file\\" -o \\"$file_base_name\\" && \\"$file_path/$file_base_name\\""
        ,
           
        "name": "RunInCmd",
            "shell_cmd": "g++ -Wall -std=c++0x  \\"$file\\" -o \\"$file_base_name\\" && start cmd /c \\"\\"$file_path/$file_base_name\\" & pause \\""
        
    ]

其实就是添加这么一句话,

&& start cmd /c \\"\\"$file_path/$file_base_name\\" & pause \\"

保存后,
编写示例程序myC++_test_example.cpp。内容如下:

#include <iostream>
#include <string.h>

using namespace std;
int main ()

    string str;

    cout << "please enter a string" << endl;
    cin >> str;
    cout << "input string: " << str << endl;

    return 0;

按下快捷键ctrl+shift+b,执行命令:

执行结果:

7 目前只支持编译单文件,其余的后续再研究吧。

以上是关于Sublime Text 3直接编译执行C/C++程序的主要内容,如果未能解决你的问题,请参考以下文章

sublime text 2 基于 MinGW 的 C/C++ 配置文件

sublime text 3怎么建立c语言

sublime text怎么加入mingw编译器

win7系统sublime text 搭建C语言环境

怎么设置sublime text 3使得它能够编译 latex?

用sublime text 3 搭建一个编译java的环境