需要安裝的軟件列表
軟件
- GCC
- TCC
- Clang(LLVM)
Sublime 插件
- AstyleFormatter
- EasyClangComplete
- ClangAutoComplete
基本編譯環(huán)境
在Windows上,Sublime Text 配置C語言運行環(huán)境,推薦安裝Msys2虑乖,然后由Msys2安裝GCC,這樣可以安裝到很新的GCC版本拣技,錯誤提示會比較友好。
另外耍目,推薦一下貝拉http://bellard.org大神的C編譯器膏斤,Tinycc(TCC),TCC編譯器特別快邪驮,編譯速度大概是GCC的9倍莫辨,而且極為小巧,加載所花費的時間很少。另外沮榜,TCC可以直接編譯運行C代碼而不用生成可執(zhí)行文件盘榨。也就是說,同樣的代碼蟆融,使用GCC編譯需要等半天草巡,使用TCC則可以瞬間編譯運行⌒退郑基于這些特性山憨,TCC特別適合用來刷C語言算法題,因為調(diào)試起來特別快捷弥喉。
對于喜歡(研究)編譯器的程序員郁竟,TCC是最小的完整的C編譯器,它從頭到腳編譯一遍自身只需0點幾秒由境,而且沒有依賴項棚亩。TCC支持多個平臺,支持許多GCC特性藻肄,除此之外蔑舞,TCC還有自己的特性拒担,比如支持下面這種寫法
int v1, v2, fib(int n) { return n < 2 ? n : fib(n - 1) + fib(n - 2); }
雖然不是什么高級特性嘹屯,但感覺很符合語義的一致性。
GCC
在Sublime 的插件目錄下的User文件夾下新建一個GCC.sublime-build文件从撼,在里面粘貼如下代碼
{
"cmd": ["gcc", "-O2", "-s", "-o", "${file_path}/${file_base_name}", "${file}"],
"file_regex": "^(..[^:]*):([0-9]+):?([0-9]+)?:? (.*)$",
"working_dir": "${file_path}",
"encoding": "gbk",
"selector": "source.c",
"variants": [
{
"name": "Run",
"cmd": [
"cmd", "/c",
"gcc", "-O2", "-s", "-o", "${file_path}/${file_base_name}", "${file}",
"&&", "${file_path}/${file_base_name}"
],
},
{
"name": "Run(CMD)",
"cmd": [
"cmd", "/c",
"gcc", "-O2", "-s", "-o", "${file_path}/${file_base_name}", "${file}",
"&&", "start", "cmd", "/c", "${file_path}/${file_base_name} &echo.&pause"
]
}
]
}
保存之后你就可以有如下圖所示的編譯環(huán)境州弟,其中TCC是下文中的TCC配置,這些編譯選項只對單個源文件有效低零,想要編譯多個源文件的項目你需要學(xué)習GNU的 Make工具婆翔。
TCC
{
"file_regex": "^(..[^:]*):([0-9]+):?([0-9]+)?:? (.*)$",
"working_dir": "${file_path}",
"selector": "source.c",
"encoding": "gbk",
"linux": {"shell_cmd": "tcc -o ${file_path}/${file_base_name} ${file}"},
"osx": {"shell_cmd": "tcc -o ${file_path}/${file_base_name} ${file}"},
"windows": {"shell_cmd": "tcc -o ${file_path}/${file_base_name}.exe ${file}"},
"variants": [
{
"name": "Run",
"linux": {"shell_cmd": "tcc -run ${file}"},
"osx": {"shell_cmd": "tcc -run ${file}"},
"windows": {"cmd": ["tcc", "-run", "${file}"]},
},
{
"name": "Run(CMD)",
"linux": {
"shell_cmd": "gnome-terminal -e 'bash -c \"echo tcc -run ${file};echo;time tcc -run \\\"${file}\\\";echo ;echo Press any key to exit...;read -n 1;exit;\"'"
},
"windows": {
// "shell_cmd": "git-bash -c \"echo tcc -run ${file_name};echo;time winpty tcc -run ${file_name};echo;echo Press any key to exit...;read -n 1;exit;\"",
"cmd": [
"cmd", "/c",
"start", "cmd", "/c", "tcc -run ${file} &echo.&pause"
],
},
"osx": {}
}
]
}
代碼補全
Sublime 自帶了C語言和C++標準庫的頭文件補全,函數(shù)名補全掏婶。對于初學(xué)者啃奴,這已經(jīng)足夠了,如果你想體驗更高級的代碼補全雄妥,不妨試一試EasyClangComplete
和ClangAutoComplete
這兩個插件最蕾。
代碼格式化
安裝插件AstyleFormatter
,另外如果安裝了LLVM
的話老厌,也可以安裝Clang Format
插件瘟则,或者兩個都安裝。