【手把手教程】一文學(xué)會使用Sublime搭建輕量級的C語言gcc編譯運行環(huán)境和Python運行環(huán)境(含所有配置流程及腳本)
1 功能訴求
不知道你是否也有類似的困惑:我想要C代碼快速驗證一段代碼的功能是否正常,但是像我這樣長期以Linux命令行編譯C代碼為主,一般的開發(fā)模式都是,都是Window下使用編輯器編輯代碼,而編譯是需要切換到Linux下。 雖然這也是主流的嵌入式編譯流程,但是如果有一種不用切到Linux就可以完成的IDE,我想應(yīng)該會提高不少工作效率。 另外,一般我們嵌入式開發(fā)中,gcc作為非常主流的C編譯器,學(xué)習(xí)好它并靈活應(yīng)用好它,對我們的技術(shù)提升也是幫助非常大。 所以,最好這個IDE是使用gcc來編譯C代碼的,而不是微軟的C編譯器,因為它并不是一個主流的嵌入式編譯環(huán)境。 同樣的,在編譯Python代碼的時候,也有類似的問題。不過好在Python環(huán)境,可以使用PyCharm。但這個IDE是需要另外安裝的,如果我有一個IDE環(huán)境或者說是一個編輯器工具,可以同時兼顧gcc編譯C代碼和運行Python代碼,那是不是少了一個IDE的負(fù)擔(dān),從工具的使用上,我們都是熟能生巧,越多使用同款工具,越能更快速地掌握其高效工作的方法。
2 為何選用Sublime?
以上講了這么多,再來說說,為何我會選擇Sublime作為這個編輯器的載體。
2.1 跨平臺
Sublime有windows版本、Linux版本、也有MacOS版本,這些主流的平臺,都可以有同樣的IDE表現(xiàn),這無疑減少了使用IDE的學(xué)習(xí)遷移成本。
2.2 支持N多種語言
幾乎你想得到的主流編譯語言,它都支持,語法高亮這種剛需,自然是必不可少。
2.3 非常輕量化
本質(zhì)它就是一個編輯器,而不是一個復(fù)雜的IDE。所以它能做到非常輕量級,作為程序員,往往都喜歡這種簡單高效的工具,而不喜歡類似VSxxxx那種繁瑣而笨重的IDE,這也是為何一大堆程序員會非常高頻使用Notepad++這種輕量化的編輯器。
2.4 非常方便建立工程項目
對比Notepad++,我認(rèn)為在見工程上,Sublime絕對是甩它一條街,因為Sublime是直接把你工程代碼的目錄文件夾,拖拉進來,工程就生成。就好比下面的工程,mbedtls的代碼:
2.5 豐富的插件/腳本功能
一個工具能不能高效使用的一個參考維度是,能不能提供插件化定制或腳本化定制的功能。而這一點,Sublime在設(shè)計之初就很好地考慮到了,自然支持插件化和腳本化,沒有任何問題。
2.6 豐富的自定義快捷鍵
一個工具能不能高效使用的另一個參考維度是,能不能支持自定義快捷鍵?這一點,無疑是加分項,每個人都有自己熟悉的操作方式,當(dāng)有了自己熟悉的快捷鍵,想工作效率不提高都難哦!
3 搭建C語言gcc編譯運行環(huán)境
3.1 環(huán)境說明
本教程的環(huán)境: PC Sublime: Windows10 Sublime v3.2.2 非注冊版本 Cygwin:v9.3.0 gcc: v10.2.0
3.2 安裝Sublime
你可以從Sublime的官網(wǎng)下載指定平臺的安裝包,然后按照提示安裝好軟件即可。 安裝好軟件后,在桌面可以看到Sublime的圖標(biāo),這個就是它了!
3.3 安裝Cygwin(gcc環(huán)境)
你可以從Cygwin的下載頁面,下載指定的安裝包,如下所示:
下載到setup-x86_64.exe后,雙擊打開,按照提示一步步安裝即可,注意,所有的選擇項按默認(rèn)的即可。
3.4 配置Sublime支持gcc編譯運行程序
3.4.1 配置gcc.sublime-build
參考下圖,
在Sublime的菜單欄,選擇Tools -> Build System -> New Build System,這時會跳出一個新的配置文件處于編譯狀態(tài),輸入下面的配置代碼:注意使用下面的代碼替換到其所有的內(nèi)容。
{
"shell_cmd": "start cmd /k "C:\\llc\\softwares\\sublime\\sublime-auto-gcc.bat" ${file}"
}
然后點保存,把文件名命名為gcc.sublime-build,存放的路徑就放在其提示存放的**默認(rèn)位置即可;不能隨意改動其位置,否則sublime就找不到了。
3.4.2 配置sublime-auto-gcc.bat
細(xì)心的朋友一定發(fā)現(xiàn)了,gcc.sublime-build里面用到了一個bat腳本,存放在:C:\llc\softwares\sublime\sublime-auto-gcc.bat;注意這個路徑是我的存放路徑,如果你的環(huán)境跟我不一樣,到時記得改回你的路徑。 這個sublime-auto-gcc.bat的內(nèi)容如下:
@echo off
::echo %1
::echo hello world
::echo bat fie path: %~dp0
set file=%1
set gcc_path=C:\cygwin64\bin
set gcc_exe=gcc.exe
set tmp_out_exe=%file%.tmp.exe
cd %gcc_path%
echo Compiling ...
echo %gcc_exe% %file% -o %tmp_out_exe%
%gcc_exe% %file% -o %tmp_out_exe%
echo Running ... %tmp_out_exe%
echo ------------------------------------
echo=
::start cmd /k %file%.exe && pause && exit
%tmp_out_exe%
echo=
echo ------------------------------------
::echo Deleting ... %tmp_out_exe%
del /f/s/q/a %tmp_out_exe%
pause
exit 0
這里需要注意的就是set gcc_path=C:\cygwin64\bin這一行,記得替換成你的環(huán)境下gcc的路徑。你可以搜索一下你安裝完cygwin之后,gcc.exe放在哪個路徑,把那個路徑填進去即可。 比如我的是:
3.4.3 配置快捷鍵
如下圖所示:
在Sublime的菜單欄Pererences -> Key Bindings,之后會跳出一個自定義快捷鍵的配置文件,將右側(cè)的文件修改成以下內(nèi)容:
[
{
"keys": ["f10"],//這一行是自己設(shè)的快捷鍵,其它為復(fù)制的棕色字體部分
"command": "build", "args":
{
"select": true
}
},
]
如下圖:
注意這里配置的快捷鍵是F10,如果你想配置成你想要的快捷鍵,注意不要與現(xiàn)有的快捷鍵沖突即可。 配置完之后,按下F10就可以看到腳本被調(diào)起來了。
3.4.4 實戰(zhàn)演示
首先使用sublime編寫一段簡單的C代碼,如下:
#include
int main(int agrc, const char *argv[])
{
printf("Hello C world !\n");
return 0;
}
然后Ctrl+S保存為hello.c,緊接著按下F10,你就可以看到這個C代碼在被gcc編譯,隨后自動把編譯后可執(zhí)行文件運行起來,輸出Hello C world !
如果你按下F10之后,報錯了,你可能需要確認(rèn)下Tools -> Build System里面打勾的是不是gcc那一項,如果不是的化,你需要選擇gcc,然后再重新F10,應(yīng)該就可以了。
還有一點需要注意的是,當(dāng)你按下F10的時候,一定是當(dāng)前的C文件處于最前端編輯狀態(tài),不能切換到其他文件,因為這里是會把當(dāng)前編輯的文件名傳遞給編譯腳本,達到編譯運行的效果的。
4 搭建Python運行環(huán)境
有了gcc的環(huán)境搭建的基礎(chǔ)上,配置Python的運行環(huán)境就簡單很多了。
4.1 環(huán)境說明
本教程的環(huán)境: PC Sublime: Windows10 Sublime v3.2.2 非注冊版本 python: v3.7.8
4.2 Python環(huán)境安裝
本小節(jié)可參考教程,具體的python版本可以自行選擇,安裝成功之后,打開cmd,輸入python -v,可以看到類似的版本信息,證明你的python環(huán)境安裝OK了。 注意:安裝過程中,務(wù)必選擇把python添加到環(huán)境變量中去,否則可能會影響腳本的正確運行。
C:\Users\redtea>python -V
Python 3.7.8
4.3 配置Sublime支持運行python程序
4.3.1 配置python.sublime-build
參考下圖,
在Sublime的菜單欄,選擇Tools -> Build System -> New Build System,這時會跳出一個新的配置文件處于編譯狀態(tài),輸入下面的配置代碼:注意使用下面的代碼替換到其所有的內(nèi)容。
{
"shell_cmd": "start cmd /k "C:\\llc\\softwares\\sublime\\sublime-auto-python.bat" ${file}"
}
然后點保存,把文件名命名為python.sublime-build,存放的路徑就放在其提示存放的默認(rèn)位置即可;不能隨意改動其位置,否則sublime就找不到了。
4.3.2 配置sublime-auto-python.bat
細(xì)心的朋友一定發(fā)現(xiàn)了,python.sublime-build里面用到了一個bat腳本,存放在:C:\llc\softwares\sublime\sublime-auto-python.bat;注意這個路徑是我的存放路徑,如果你的環(huán)境跟我不一樣,到時記得改回你的路徑。 這個sublime-auto-python.bat的內(nèi)容如下:
@echo off
::echo %1
::echo hello world
::echo bat fie path: %~dp0
set file=%1
set python_exe=python
echo Running ... %file%
echo ------------------------------------
echo=
::start cmd /k %file%.exe && pause && exit
%python_exe% %file%
echo=
echo ------------------------------------
pause
exit 0
4.3.3 配置快捷鍵
如果gcc那一步已經(jīng)配置好了,本步驟可以跳過,因為他們是共有的快捷鍵,配置成F10就好了。
4.3.4 實戰(zhàn)演示
首先使用sublime編寫一段簡單的Python代碼,如下:
import os
import sys
def hello_world():
print('Hello python world !')
if __name__ == "__main__":
hello_world()
然后Ctrl+S保存為hello.py,緊接著按下F10,你就可以看到這個Python代碼就被運行起來,輸出Hello python world !
如果你按下F10之后,報錯了:
你可能需要確認(rèn)下Tools -> Build System里面打勾的是不是gcc那一項,如果不是的化,你需要選擇python,這里需要注意大小寫,我們建立的build是小寫的python,然后再重新F10,應(yīng)該就可以了。
還有一點需要注意的是,當(dāng)你按下F10的時候,一定是當(dāng)前的python文件處于最前端編輯狀態(tài),不能切換到其他文件,因為這里是會把當(dāng)前編輯的文件名傳遞給運行腳本,達到運行的效果的。
5 總結(jié)
5.1 原理分析
核心流程原理就是: 新建一個build system流程, 而這個流程僅僅是把當(dāng)前編輯的文件名取到, 然后傳遞給cmd開啟的一個sublime-auto-xxx.bat腳本, 這個腳本就負(fù)責(zé)對傳入的文件(C文件或python文件)做更多的處理: ??— C文件的話,就調(diào)用gcc.exe先把它編譯成exe,然后把exe運行起來; ??— python文件的話,就調(diào)用python.exe把python文件運行起來。 同時,這里會通過Key Bindings綁定了一個快捷鍵,使得可以按一鍵就完成了所有編譯運行流程,高效便捷。
5.2 更多擴展
掌握了上面的核心原理之后,你想怎么玩就怎么玩。 比如你想編譯運行一個Java文件? 比如你想單獨地運行一個BAT腳本? 這些都將變得so easy ! 更重要的是,由于在build system里面我建立了一個BAT腳本做跳板(就是那個sublime-auto-xxx.bat腳本),那么我理論上我是可以通過它來執(zhí)行任何自動化運行的事情的! 比如我就還建立了一個rsync遠(yuǎn)程同步的功能,一鍵實現(xiàn)本地目錄與遠(yuǎn)程目錄完全同步,這也是非常好用的。 更多的功能,真的就取決于你的想象力!
5.3 你還不試試看?
有了這個教程,你是不是可以把windows下編輯代碼-linux下命令行編譯的操作流程摒棄了? 有了這個教程,你是不是應(yīng)該把你的PyCharm關(guān)閉一段時間呢? 這么高效的工作方法,你都學(xué)會了嗎? 歡迎交流討論,期望你的寶貴建議。
6 更多分享
歡迎關(guān)注我的github倉庫01workstation,日常分享一些開發(fā)筆記和項目實戰(zhàn),歡迎指正問題。
同時也非常歡迎關(guān)注我的專欄,有問題的話,可以跟我討論,知無不答,謝謝大家。
審核編輯 黃昊宇
-
C語言
+關(guān)注
關(guān)注
180文章
7614瀏覽量
137714 -
python
+關(guān)注
關(guān)注
56文章
4807瀏覽量
85038 -
運行環(huán)境
+關(guān)注
關(guān)注
0文章
9瀏覽量
7104
發(fā)布評論請先 登錄
相關(guān)推薦
評論