寫此文解決兩個問題:html
1.在Sublime Text中實現編譯運行含有外部輸入的C程序(如含有scanf的程序);算法
2.在程序運行完畢後不退出cmd,能繼續用gdb調試程序。shell
1、MinGW測試
下載地址:https://sourceforge.net/projects/mingw/,點擊」download「後等待幾秒鐘便會彈出下載框。ui
相關介紹:http://blog.csdn.net/k1988/article/details/4375382(沒找到原做者地址,引用了一篇轉載的)spa
安裝與配置參考:http://jingyan.baidu.com/article/455a99509c76d8a1662778f6.html.net
2、配置Sublime Text調試
1) 按下圖添加新的編譯系統code
2) 在彈出的頁面中複製如下代碼(雙擊代碼區域可全選),"Ctrl+s"保存爲C.sublime-build。htm
部分參數解釋:(本身摸索的,不必定準確,供參考)
${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調試程序。
-----------------------------------------------------
* 本文是根據自身經驗所做,不免存在不合理之處。