Sulime Text 3 配置C/C++編譯執行環境
開場槽
說起來,大一剛進浙大的時候,有這樣一門“程式設計基礎”課,學的是C。東西倒不是特別難,可是偏偏寫程式碼用的IDE是Dev C++——這麼一款沒有程式碼自動補全,除錯不好用,如今基本沒有企業會用的這麼一款IDE。如果一定要說Dev有什麼好的話……大概就是寫一次程式碼不需要新建一個工程……而且對於大一或者大二不需要建工程的程式碼比較多的情況下還是一個不錯的選擇。只是沒有程式碼自動補全還是太令人難過。 後來偶然之中看到翁愷老師在用Sublime Text講課,發現這個軟體竟然有點厲害。 至於多牛逼:這裡已經有人吹過了 。 另外不得的不說這麼一款編輯器安裝包只有不到10M的大小,開啟它只需要1秒
不過既然點了進來,顯然你已經領略到了Sublime text 3的魅力,那就來一起看看到底該怎麼做吧。
編譯執行需要做的事情
有關路徑的設定
主要的編譯思路就是我們用Sublime Text去用命令提示窗進行編譯 利用命令提示窗,我們可以實現編譯。實際上我們是使用gcc.exe這個檔案進行編譯。 安裝的Dev C++裡面已經為我們準備好了。如果沒有裝Dev C++,可以直接安裝MinGW。 我們到命令提示窗裡面去輸入這個程式碼來編譯一下: —————————————————————— 寫一個簡單的程式碼:
gcc F:\test.c -o F:\test
—————————————————————— 然而…… 這是因為我們的gcc不在系統認識的PATH裡,所以我們需要新增一個環境變數。 —————————————————————— 右鍵【此電腦】->【屬性】-> 【高階系統設定】 -> 【高階】 -> 【環境變數】 —————————————————————— 我的Dev C++已經裝好了MinGW,找到gcc的位置,新增進PATH裡
—————————————————————— 我們再來試一次:
有關自定義編譯的設定
我們可以用start開啟我們編譯的檔案:
start F:\test
看到什麼了嗎?一個框閃了一下馬上就消失了。所以我們可以加個&pause來留下它美麗的瞬間。 整體的思路就是先用命令列傳入檔案的位置資訊和名字資訊執行編譯,開啟cmd來執行對應的exe,並新增一個pause來暫停。 —————————————————————— 在Sublime Text裡點選【首選項】 -> 【瀏覽外掛目錄】開啟資料夾,在…\Packages\User\ 裡新建一個名為"C.sublime-build"的檔案,把下面的程式碼放進去,注意副檔名是".sublime-build"。 關於JSON我瞭解的不多,就直接輸入程式碼就好了:
{
"encoding": "utf-8",
"working_dir": "$file_path",
"shell_cmd": "g++ -Wall \"$file_name\" -o \"$file_base_name\"",
"file_regex": "^(..[^:]*):([0-9]+):?([0-9]+)?:? (.*)$",
"selector": "source.c",
"variants":
[
{
"name": "編譯執行",
"shell_cmd": "g++ -Wall -std=c++0x \"$file\" -o \"$file_base_name\" && \"${file_path}/${file_base_name}\""
},
{
"name": "cmd:執行",
"shell_cmd": "start cmd /c \"\"${file_path}/${file_base_name}\" & pause \""
},
{
"name": "cmd:編譯執行",
"shell_cmd": "g++ -Wall -std=c++0x \"$file\" -o \"$file_base_name\" && start cmd /c \"\"${file_path}/${file_base_name}\" & pause \""
}
]
}
—————————————————————— 然後儲存,再Ctrl + Shift + B開啟編譯選項,就可以看到之剛才的自定義編譯了。 —————————————————————— 簡單說一下四個選項的功能: C:編譯,最後會生成一個 *.exe 檔案 C - 編譯執行 : 編譯,生成一個 *.exe 檔案,然後在Sublime Text裡執行。任何需要輸入的程式都不能選這個選項。 C - cmd:執行 :直接執行編譯生成的 *.exe 檔案,這個選項不會進行編譯,因為不需要編譯,所以可以立即開啟檔案,一般用於反覆測試的時候。 C - cmd:編譯執行:編譯,然後生成的 *.exe 檔案。就像Dev C++按下F11的時候一樣爽。 —————————————————————— 另外Ctrl + B是直接重複上次選擇的編譯選項進行編譯。
後槽
細心的同學已經發現了,JSON碼裡面的用的明明是g++…… 這個主要是gcc編譯的時候,主函式不寫return 0; 會被出警(悲) 但是後來的g++編譯的時候就會幫你補上這個,就很方便,所以用的是這段指令。 另外C++編譯也是複製貼上這一段程式碼建個新檔案就行,唯一需要修改的地方是
"selector": "source.c"
需要換成
"selector": "source.c++"
這樣在選擇語法為C++的時候也會有顯示。