如何讓sublime text 2可以支持C語言的編譯和run?


首先你得有一個編譯器,對於 Windows 和 Linux 來說可以採用 gcc 。

For Windows:

下載安裝MinGW,然後在系統環境變數中添加

C:MinGWin

(假設你把 MinGW安裝在 C 盤)

最後在Sublime Text 2中Tools –&> Build System –&> New Build System…輸入如下內容並保存:

{
"cmd" : ["gcc", "$file_name", "-o", "${file_base_name}.exe", "-lm", "-Wall"],
"selector" : "source.c",
"shell":true,
"working_dir" : "$file_path"
}

For Linux:

直接在 Package Control 安裝一個叫 SublimeClang 的插件就可以了。

(Mac 和 Win 沒測試過)

或:

如果是 Ubuntu ,打開終端輸入

sudo apt-get install build-essential

不同的 Linux 發行版有不同的包管理,把 apt-get 換成你的系統的命令就好了。

最後在Sublime Text 2中Tools –&> Build System –&> New Build System…輸入如下內容並保存:

{
"cmd" : ["gcc", "$file_name", "-o", "${file_base_name}", "-lm", "-Wall"],
"selector" : "source.c",
"shell":false,
"working_dir" : "$file_path"
}

For OS X:

下載Xcode,然後下載Command Line Tools,最後在Sublime Text 2的 Build System 中選擇 C++ 。


Mac平台自帶的編譯系統c++,可以編譯運行,但是不能輸入數據。

用下面配置新建一個編譯系統,寫好代碼按ctrl +b直接編譯運行,並打開終端,然後就可以輸入數據。

{
"cmd": ["bash", "-c", "g++ "${file}" -o "${file_path}/${file_base_name}" osascript -e "tell application "Terminal" to activate do script "clear${file_path}/${file_base_name} read -p \"Press Enter to exit.\"exit"""],
"file_regex": "^(..[^:]*):([0-9]+):?([0-9]+)?:? (.*)$",
"working_dir": "${file_path}",
"selector": "source.c, source.c++",

"variants":
[
{
"name": "Run",
"cmd": ["bash", "-c", "g++ "${file}" -o "${file_path}/${file_base_name}" "${file_path}/${file_base_name}""]
}
]
}

windows系統可以用下面的配置。

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


//位置前面寫得很清楚了 這是我用過的最好用的版本

{

"cmd": ["gcc","-Wall", "${file}", "-o", "${file_path}/${file_base_name}"],

"file_regex": "^(..[^:]*):([0-9]+):?([0-9]+)?:? (.*)$",

"working_dir": "${file_path}",

"selector": "source.c, source.c++",

"encoding":"cp936",

"variants":

[

{

"name": "Run",

"cmd": ["cmd", "/c", "gcc", "-Wall","${file}", "-o", "${file_path}/${file_base_name}", "", "cmd", "/c", "${file_path}/${file_base_name}"]

},

{

"name": "RunInCommand",

"cmd": ["cmd", "/c", "gcc", "-Wall","${file}", "-o", "${file_path}/${file_base_name}", "", "start", "cmd", "/c", "${file_path}/${file_base_name} echo.pause"]

}

]

}

//加了 -Wall 警告 和最後輸出結果暫停CMD框也就是類似getchar()的效果 不通過不打開CMD框

需要自己寫個宏 Preferences-&>Key bindings user

[

{"keys": ["f5"], "command": "build", "args": {"variant": "RunInCommand"}}

]

//我是直接F5 編譯執行


得票最高的寫的很好 補充一條 mac下如果要run的話 加一條如下配置

"variants":

[

{

"name": "Run",

"cmd": "${file_path}/${file_base_name}"

}

]


安裝GCC/G++

菜單欄-tools-build system-New build system-黏貼-保存

===================================================

{

"cmd": ["g++", "${file}", "-o", "${file_path}/${file_base_name}"],

"file_regex": "^(..[^:]*):([0-9]+):?([0-9]+)?:? (.*)$",

"working_dir": "${file_path}",

"selector": "source.c, source.c++",

"encoding":"cp936",

"variants":

[

{

"name": "Run",

"cmd" : ["${file_path}/${file_base_name}"]

}

]

}


按ctrl+shift+B,先選C,編譯好後,再按ctrl+shif+B,再選C-Run,可以在sublime里調出命令行窗口。不用再切了

{

"cmd" : ["gcc", "$file_name", "-o", "${file_base_name}.exe", "-lm", "-Wall"],

"selector" : "source.c",

"shell":true,

"working_dir" : "$file_path",

"variants":

[

{

"name": "Run",

"cmd": [ "start", "${file_path}/${file_base_name}.exe"]

}

]

}


@木喆 f5鍵不會與MacBook f5默認設置衝突嗎 ,怎麼設置其他的鍵位,例如組合件

"command +] "?


參考了樓上各位的寫法,但是自己也碰到了一個你們沒有提到的問題,問題重述如下:

最新的OS X已經沒有gcc了,所以通過homebrew安裝,並且驗證了 gcc已成功安裝,

gcc-4.9 -v

但是在編譯時出現錯誤, 如下:

[Errno 2] No such file or directory

[cmd: [u"gcc-4.9", u"-Wall", u"/Users/maluo/Documents/GitHubProjects/DataStructure/Binary Tree/generateTree.c", u"-o", u"/Users/maluo/Documents/GitHubProjects/DataStructure/Binary Tree/generateTree"]]

[dir: /Users/maluo/Documents/GitHubProjects/DataStructure/Binary Tree]

[path: /usr/bin:/bin:/usr/sbin:/sbin]

[Finished]

好吧,看到Path我就震驚了,這貨根本不是我的系統path, 我不確定這是不是sublime的問題,所以我自己創立了一個軟連接: /usr/bin/gcc-4.9 -&> /usr/local/bin/gcc-4.9, 問題解決, 然而, 依然不解這個問題,sublime難道不會和我的系統path一致? 如果你也遇到同樣地問題,希望可以幫到你


其實你可以自己寫一個插件,用來執行批處理的腳本。然後在每個工程下建立一個批處理腳本,調用make,從而達到控制整個工程的目的。而且這樣的插件隊你直接執行解釋性的腳本語言也很有用。


推薦閱讀:

關於c語言的學習?
The C Programming Language與C Primer Plus哪本書好?
在雙層循環中應該盡量保證內循環的次數小於外循環的次數還是恰恰相反?
C 中 int a[] 和 int*a 有什麼區別?
C語言編譯器是如何實現指針+1這樣的一個機制?

TAG:C編程語言 | CC | SublimeText |