写此文解决两个问题:

  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. TCP/IP协议详解——邮差与邮局

    信号的传输总要符合一定的协议.比如说长城上放狼烟,是因为人们已经预先设定好狼烟这个物理信号代表了“敌人入侵”这一抽象信号.这样一个“狼烟=敌人入侵”就是一个简单的协议. 信号的传输总要符合一定的协议( ...

  2. Spring test

    @Rollback 用于标记在spring test中是否提交事务, 默认为true, 即不提交, 如果需要设置单元测试完成时自动提交事务, 需要设置rollback为false; 可以使用 @Com ...

  3. Android studio

      情况一: 描述:写Android app时,出现activity对应的layout预览图所显示的activity是有标题栏的,但是运行该app,无论是模拟器还是真机,却出现没有了标题栏的情况,而自 ...

  4. rmarkdown教程

    https://github.com/yihui/r-ninja/blob/master/11-auto-report.md http://rpubs.com/about/getting-starte ...

  5. 在ASP学习当中对双引号,单引号以及&符号的理解

    在我的Web安全学习的开始需要对ASP的代码有一定的熟悉程度但是在查看源码的时候经常性的看到双引号,单引号以及&号.并且对他们的用法经常产生疑惑的地方,这里是我搜集的一些理解和感悟,以期对AS ...

  6. Xcode同一个Workspace中两个工程依赖于Undefined Symbol Error

    Workspace中包含两个工程A和B: A是dylib工程,引用了另一个动态库C,B需要链接(依赖)A库.当编译B时,会先编译A,然后把A生成的dylib拷贝到B的生成目录中.如果要运行B的话需要把 ...

  7. Unity StrangeIoC框架

    Unity StrangeIoC框架  http://blog.csdn.net/y1196645376/article/details/52746251    

  8. Centos6.5下docker 环境搭建

    一.运行docker Linux内核版本需要在3.8以上,针对centos6.5 内核为2.6的系统需要先升级内核.不然会特别卡,退出容器. 在yum的ELRepo源中,有mainline(3.13. ...

  9. Spring学习记录1--@Transactional Propagation

    起因 学习Spring的时候就知道aop有一个应用是声明式注解..反正往Service上一丢@Transactional就完事了..不用自己去开启hibernate的session,很简单. 但是@T ...

  10. Spring 的动态数据源实现

    1. 配置多个数据源 这里以两个c3p0数据库连接池的数据源作为实例.在Spring框架下使用c3p0的数据库需要加入c3p0-0.9.1.2.jar(现在最新的)这个支持包.这里以数据同步项目为例: ...