写此文解决两个问题:

  1.在Sublime Text中实现编译运行含有外部输入的C程序(如含有scanf的程序);

  2.在程序运行完毕后不退出cmd,能继续用gdb调试程序。

一、MinGW

下载地址:https://sourceforge.net/projects/mingw/,点击”download“后等待几秒钟便会弹出下载框。

相关介绍:http://blog.csdn.net/k1988/article/details/4375382(没找到原作者地址,引用了一篇转载的)

安装与配置参考:http://jingyan.baidu.com/article/455a99509c76d8a1662778f6.html

二、配置Sublime Text

1) 按下图添加新的编译系统

2) 在弹出的页面中复制以下代码(双击代码区域可全选),"Ctrl+s"保存为C.sublime-build。

部分参数解释:(自己摸索的,不一定准确,供参考)
${file_path}:文件目录路径
${file_base_name}:不包含扩展名部分的文件名(如 test.c 的 file_base_name 为 test )
"selector":"source.c":操作的文件类型为 .c 文件
"encoding":"cp936":支持中文字符集
"cmd","/k":执行完毕后不退出shell (/k 是 cmd 的参数)
"variants":变量,这里定义了"Run"和"RunInCommand"两个变量
Run:用于无外部输入(如scanf)的情况
RunInCommand:用于有外部输入或需要调试的情况,将打开cmd窗口,程序运行完毕后可用命令“gdb xxx.exe”调试程序

{
"cmd": ["gcc", "${file}", "-o", "${file_path}/${file_base_name}"],
"file_regex": "^(..[^:]*):([0-9]+):?([0-9]+)?:? (.*)$",
"working_dir": "${file_path}",
"selector": "source.c",
"encoding":"cp936", "variants":
[
{
"name": "Run",
"cmd": ["cmd", "/c", "gcc", "${file}", "-o", "${file_path}/${file_base_name}", "&&","${file_path}/${file_base_name}.exe"]
},
{
"name": "RunInCommand",
"cmd": ["cmd", "/c", "gcc","-g", "${file}", "-o", "${file_path}/${file_base_name}", "&&", "start", "cmd", "/k", "${file_path}/${file_base_name}"]
}
]
}

3) 按下图创建快捷命令,Key Bindings不一定在"CTags"中,找到打开即可;

4) 在文件中添加如下内容并保存,具体快捷键可自行设置

alt+r:启用Run编译运行程序

alt+g:启用RunInCommand编译运行程序

[
{"keys": ["alt+r"], "command": "build", "args": {"variant": "Run"}},
{"keys": ["alt+g"], "command": "build", "args": {"variant": "RunInCommand"}}
]

5) 完毕。下图是运行效果。测试文件为一个排序算法sort.c

alt+r,结果将在Sublime中显示

alt+g,结果将在cmd窗口中显示,且执行完毕后不退出窗口,后续可用gdb调试程序。

-----------------------------------------------------

* 本文是根据自身经验所作,难免存在不合理之处。

* 以上内容为作者原创,转载请注明出处。
----------------------------------------------------- 

Sublime Text:Windows下配置C 编译环境和GDB调试环境的更多相关文章

  1. [开发工具]_[Sublime Text 2]_[配置C++编译执行环境]

    场景: 1. g++的版本号更新比較快,能够使用最新的C++11特性, 这里sublime text 2是我的轻量级C++开发工具(仅仅有这个),能够使用st2这样的工具来验证一些语法新特性, 也能够 ...

  2. Sublime Text 3 C++ 配置

    Sublime Text 3 C++ 配置 先将MinGW\bin添加至环境变量中,然后打开Sublime Text,菜单Tools->Build System->New Build Sy ...

  3. Sublime Text 2下搭建Python环境常见错误

    Sublime Text 2下搭建Python环境时,最容易出的错误就是Python环境配置错误,导致build(Ctrl+B)后没有任何反应. 关于Python编程环境的配置,网上很容易搜索到.先默 ...

  4. Sublime Text 3下C/C++开发环境搭建

    Sublime Text 3下C/C++开发环境搭建 之前在Linux Mint 17一周使用体验中简单介绍过Sublime Text. 1.Sublime Text 3安装 Ubuntu.Linux ...

  5. windows下配置apache+php环境

    PHP安装 由于windows下php扩展5.6的多余7.0,故以php5.6为开发环境.如果对扩展要求不高,可以使用php7,安装过程类似. 约定: 环境安装目录: D:/phpsetup/ |-- ...

  6. QT + OpenCV + MinGW 在windows下配置开发环境

           由于研究项目需要,最近开始接触C++界面设计,关于“QT + OpenCV + MinGW在windows下配置开发环境”着实让人头疼,单次配置时间相当长,也十分不容易,本人第一次配置成 ...

  7. Win7环境下Sublime Text 3下安装NodeJS插件

    1.首先下载安装Node.JS,配置好环境变量(安装好Node.JS默认是配置好了环境变量的). 2.Sublime Text 3下安装NodeJS插件. 参考的两篇文章:http://www.cnb ...

  8. 在Sublime Text 3中配置Python3的开发环境/Build System

    本文来源:https://www.cnblogs.com/zhangqinwei/p/6886600.html Sublime Text作为一款支持多种编程语言的文本编辑神器,深受广大开发者的喜爱.通 ...

  9. 轻盈潇洒卓然不群,敏捷编辑器Sublime text 4中文配置Python3开发运行代码环境(Win11+M1 mac)

    原文转载自「刘悦的技术博客」https://v3u.cn/a_id_210 20世纪初,几乎所有的飞机都是并列双翼结构,此时,美国著名飞行大亨霍华德·休斯认为自己的飞机不够快,助手委婉地提醒他,如果速 ...

随机推荐

  1. weui dialog

    切记:weui dialog 的样式是在weui.css,而不是在weui.min.css HTML: <!DOCTYPE html> <html> <head> ...

  2. c++调用lua

    我们主要解决如下几个问题: 转:http://www.cnblogs.com/zisou/p/cocos2dx-lua2.html http://www.cnblogs.com/sevenyuan/p ...

  3. Entity Framework 6连接Postgresql、SQLite、LocalDB的注意事项和配置文件

    Postgresql Postgresql支持Code First的方式自动生成表,不过默认的模式是dbo而不是public,而且还可以自动生成自增主键. <?xml version=" ...

  4. 【USACO 3.2】Factorials(阶层非零尾数)

    题意:输出n的阶层最后一个非0数. 题解:可以把5和2的个数算出来,每次把5和2都除掉,最后乘上比5多出来的2.我的解法是,每次把尾巴的0去掉,并且保留3位,算到最后取尾数就可以了.. /* TASK ...

  5. AutoMapper简单用法

    首先在NuGet添加AutoMapper /// <summary> /// AutoMapper帮助类 /// </summary> public static class ...

  6. 精通Web Analytics 2.0 (9) 第七章:失败更快:爆发测试与实验的能量

    精通Web Analytics 2.0 : 用户中心科学与在线统计艺术 第七章:失败更快:爆发测试与实验的能量 欢迎来到实验和测试这个棒极了的世界! 如果Web拥有一个超越所有其他渠道的巨大优势,它就 ...

  7. Atomikos实现多数据源的事物管理

    之前试过使用Spring动态切换数据库,通过继承AbstractRoutingDataSource重写determineCurrentLookupKey()方法,来决定使用那个数据库.在开启事务之前, ...

  8. javascript随机打乱数组

    var arr=[]; ;i<;i++){ arr[i]=i; } arr.sort(function(){ return 0.5 - Math.random() }) var str=arr. ...

  9. Android SharedPreferences存储

    原创文章,转载请注明出处:http://www.cnblogs.com/baipengzhan/p/Android_SharedPreferences.html 一 概念 SharedPreferen ...

  10. wpf 遍历控件及其值

    /// <summary> /// 遍历控件及其值 /// </summary> /// <param name="uiControls">界面 ...