【手把手教程】一文學(xué)會使用Sublime搭建輕量級的C語言gcc編譯運(yùn)行環(huán)境和Python運(yùn)行環(huán)境(含所有配置流程及腳本)
1 功能訴求
不知道你是否也有類似的困惑:我想要C代碼快速驗(yàn)證一段代碼的功能是否正常,但是像我這樣長期以Linux命令行編譯C代碼為主,一般的開發(fā)模式都是,都是Window下使用編輯器編輯代碼,而編譯是需要切換到Linux下。 雖然這也是主流的嵌入式編譯流程,但是如果有一種不用切到Linux就可以完成的IDE,我想應(yīng)該會提高不少工作效率。 另外,一般我們嵌入式開發(fā)中,gcc作為非常主流的C編譯器,學(xué)習(xí)好它并靈活應(yīng)用好它,對我們的技術(shù)提升也是幫助非常大。 所以,最好這個(gè)IDE是使用gcc來編譯C代碼的,而不是微軟的C編譯器,因?yàn)樗⒉皇且粋€(gè)主流的嵌入式編譯環(huán)境。 同樣的,在編譯Python代碼的時(shí)候,也有類似的問題。不過好在Python環(huán)境,可以使用PyCharm。但這個(gè)IDE是需要另外安裝的,如果我有一個(gè)IDE環(huán)境或者說是一個(gè)編輯器工具,可以同時(shí)兼顧gcc編譯C代碼和運(yùn)行Python代碼,那是不是少了一個(gè)IDE的負(fù)擔(dān),從工具的使用上,我們都是熟能生巧,越多使用同款工具,越能更快速地掌握其高效工作的方法。
2 為何選用Sublime?
以上講了這么多,再來說說,為何我會選擇Sublime作為這個(gè)編輯器的載體。
2.1 跨平臺
Sublime有windows版本、Linux版本、也有MacOS版本,這些主流的平臺,都可以有同樣的IDE表現(xiàn),這無疑減少了使用IDE的學(xué)習(xí)遷移成本。
2.2 支持N多種語言
幾乎你想得到的主流編譯語言,它都支持,語法高亮這種剛需,自然是必不可少。
2.3 非常輕量化
本質(zhì)它就是一個(gè)編輯器,而不是一個(gè)復(fù)雜的IDE。所以它能做到非常輕量級,作為程序員,往往都喜歡這種簡單高效的工具,而不喜歡類似VSxxxx那種繁瑣而笨重的IDE,這也是為何一大堆程序員會非常高頻使用Notepad++這種輕量化的編輯器。
2.4 非常方便建立工程項(xiàng)目
對比Notepad++,我認(rèn)為在見工程上,Sublime絕對是甩它一條街,因?yàn)镾ublime是直接把你工程代碼的目錄文件夾,拖拉進(jìn)來,工程就生成。就好比下面的工程,mbedtls的代碼:
![在這里插入圖片描述](https://file.elecfans.com//web2/M00/51/9A/poYBAGLK0MiAdXXpAAN-RVopxxs500.png)
2.5 豐富的插件/腳本功能
一個(gè)工具能不能高效使用的一個(gè)參考維度是,能不能提供插件化定制或腳本化定制的功能。而這一點(diǎn),Sublime在設(shè)計(jì)之初就很好地考慮到了,自然支持插件化和腳本化,沒有任何問題。
2.6 豐富的自定義快捷鍵
一個(gè)工具能不能高效使用的另一個(gè)參考維度是,能不能支持自定義快捷鍵?這一點(diǎn),無疑是加分項(xiàng),每個(gè)人都有自己熟悉的操作方式,當(dāng)有了自己熟悉的快捷鍵,想工作效率不提高都難哦!
3 搭建C語言gcc編譯運(yùn)行環(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),這個(gè)就是它了!
![sublime的圖標(biāo)](https://file.elecfans.com//web2/M00/52/35/pYYBAGLK0MmAV5mzAACmz3uXDGc282.png)
3.3 安裝Cygwin(gcc環(huán)境)
你可以從Cygwin的下載頁面,下載指定的安裝包,如下所示:
![cygwin下載鏈接](https://file.elecfans.com//web2/M00/51/9A/poYBAGLK0MqAD2D9AAG_sj18FSw196.png)
下載到setup-x86_64.exe后,雙擊打開,按照提示一步步安裝即可,注意,所有的選擇項(xiàng)按默認(rèn)的即可。
3.4 配置Sublime支持gcc編譯運(yùn)行程序
3.4.1 配置gcc.sublime-build
參考下圖,
![build system](https://file.elecfans.com//web2/M00/52/35/pYYBAGLK0MyAAaBuAAIj_pfKkVM497.png)
在Sublime的菜單欄,選擇Tools -> Build System -> New Build System,這時(shí)會跳出一個(gè)新的配置文件處于編譯狀態(tài),輸入下面的配置代碼:注意使用下面的代碼替換到其所有的內(nèi)容。
{
"shell_cmd": "start cmd /k "C:\\llc\\softwares\\sublime\\sublime-auto-gcc.bat" ${file}"
}
然后點(diǎn)保存,把文件名命名為gcc.sublime-build,存放的路徑就放在其提示存放的**默認(rèn)位置即可;不能隨意改動其位置,否則sublime就找不到了。
![在這里插入圖片描述](https://file.elecfans.com//web2/M00/51/9A/poYBAGLK0M6AaWY3AACmm2Xc3Cw614.png)
3.4.2 配置sublime-auto-gcc.bat
細(xì)心的朋友一定發(fā)現(xiàn)了,gcc.sublime-build里面用到了一個(gè)bat腳本,存放在:C:\llc\softwares\sublime\sublime-auto-gcc.bat;注意這個(gè)路徑是我的存放路徑,如果你的環(huán)境跟我不一樣,到時(shí)記得改回你的路徑。 這個(gè)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放在哪個(gè)路徑,把那個(gè)路徑填進(jìn)去即可。 比如我的是:
![在這里插入圖片描述](https://file.elecfans.com//web2/M00/52/35/pYYBAGLK0M6Afvy4AAA8IpLXJ0I954.png)
3.4.3 配置快捷鍵
如下圖所示:
![在這里插入圖片描述](https://file.elecfans.com//web2/M00/51/9A/poYBAGLK0NCAMYW1AAF6B9zBhOw261.png)
在Sublime的菜單欄Pererences -> Key Bindings,之后會跳出一個(gè)自定義快捷鍵的配置文件,將右側(cè)的文件修改成以下內(nèi)容:
[
{
"keys": ["f10"],//這一行是自己設(shè)的快捷鍵,其它為復(fù)制的棕色字體部分
"command": "build", "args":
{
"select": true
}
},
]
如下圖:
![在這里插入圖片描述](https://file.elecfans.com//web2/M00/52/35/pYYBAGLK0NSAJZ_yAALszu0Ma7k272.png)
注意這里配置的快捷鍵是F10,如果你想配置成你想要的快捷鍵,注意不要與現(xiàn)有的快捷鍵沖突即可。 配置完之后,按下F10就可以看到腳本被調(diào)起來了。
3.4.4 實(shí)戰(zhàn)演示
首先使用sublime編寫一段簡單的C代碼,如下:
#include
int main(int agrc, const char *argv[])
{
printf("Hello C world !\n");
return 0;
}
然后Ctrl+S保存為hello.c,緊接著按下F10,你就可以看到這個(gè)C代碼在被gcc編譯,隨后自動把編譯后可執(zhí)行文件運(yùn)行起來,輸出Hello C world !
![在這里插入圖片描述](https://file.elecfans.com//web2/M00/51/9A/poYBAGLK0NWAK6A7AAD_FV6cNMc892.png)
如果你按下F10之后,報(bào)錯(cuò)了,你可能需要確認(rèn)下Tools -> Build System里面打勾的是不是gcc那一項(xiàng),如果不是的化,你需要選擇gcc,然后再重新F10,應(yīng)該就可以了。
![在這里插入圖片描述](https://file.elecfans.com//web2/M00/52/35/pYYBAGLK0NaAReiOAAIFLvoWYxY535.png)
還有一點(diǎn)需要注意的是,當(dāng)你按下F10的時(shí)候,一定是當(dāng)前的C文件處于最前端編輯狀態(tài),不能切換到其他文件,因?yàn)檫@里是會把當(dāng)前編輯的文件名傳遞給編譯腳本,達(dá)到編譯運(yùn)行的效果的。
4 搭建Python運(yùn)行環(huán)境
有了gcc的環(huán)境搭建的基礎(chǔ)上,配置Python的運(yùn)行環(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)境變量中去,否則可能會影響腳本的正確運(yùn)行。
C:\Users\redtea>python -V
Python 3.7.8
4.3 配置Sublime支持運(yùn)行python程序
4.3.1 配置python.sublime-build
參考下圖,
![build system](https://file.elecfans.com//web2/M00/52/35/pYYBAGLK0MyAAaBuAAIj_pfKkVM497.png)
在Sublime的菜單欄,選擇Tools -> Build System -> New Build System,這時(shí)會跳出一個(gè)新的配置文件處于編譯狀態(tài),輸入下面的配置代碼:注意使用下面的代碼替換到其所有的內(nèi)容。
{
"shell_cmd": "start cmd /k "C:\\llc\\softwares\\sublime\\sublime-auto-python.bat" ${file}"
}
然后點(diǎn)保存,把文件名命名為python.sublime-build,存放的路徑就放在其提示存放的默認(rèn)位置即可;不能隨意改動其位置,否則sublime就找不到了。
![在這里插入圖片描述](https://file.elecfans.com//web2/M00/52/35/pYYBAGLK0NmABCOzAACmICcTG_A791.png)
4.3.2 配置sublime-auto-python.bat
細(xì)心的朋友一定發(fā)現(xiàn)了,python.sublime-build里面用到了一個(gè)bat腳本,存放在:C:\llc\softwares\sublime\sublime-auto-python.bat;注意這個(gè)路徑是我的存放路徑,如果你的環(huán)境跟我不一樣,到時(shí)記得改回你的路徑。 這個(gè)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)配置好了,本步驟可以跳過,因?yàn)樗麄兪枪灿械目旖萱I,配置成F10就好了。
4.3.4 實(shí)戰(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,你就可以看到這個(gè)Python代碼就被運(yùn)行起來,輸出Hello python world !
![在這里插入圖片描述](https://file.elecfans.com//web2/M00/52/35/pYYBAGLK0NqAQd7rAADRrgDZif0307.png)
如果你按下F10之后,報(bào)錯(cuò)了:
![在這里插入圖片描述](https://file.elecfans.com//web2/M00/51/9A/poYBAGLK0NyAaeKjAAFRf6FBrmQ912.png)
你可能需要確認(rèn)下Tools -> Build System里面打勾的是不是gcc那一項(xiàng),如果不是的化,你需要選擇python,這里需要注意大小寫,我們建立的build是小寫的python,然后再重新F10,應(yīng)該就可以了。
![在這里插入圖片描述](https://file.elecfans.com//web2/M00/52/35/pYYBAGLK0N6AAeSwAAIRoKYRwQ8439.png)
還有一點(diǎn)需要注意的是,當(dāng)你按下F10的時(shí)候,一定是當(dāng)前的python文件處于最前端編輯狀態(tài),不能切換到其他文件,因?yàn)檫@里是會把當(dāng)前編輯的文件名傳遞給運(yùn)行腳本,達(dá)到運(yùn)行的效果的。
5 總結(jié)
5.1 原理分析
核心流程原理就是: 新建一個(gè)build system流程, 而這個(gè)流程僅僅是把當(dāng)前編輯的文件名取到, 然后傳遞給cmd開啟的一個(gè)sublime-auto-xxx.bat腳本, 這個(gè)腳本就負(fù)責(zé)對傳入的文件(C文件或python文件)做更多的處理: ??— C文件的話,就調(diào)用gcc.exe先把它編譯成exe,然后把exe運(yùn)行起來; ??— python文件的話,就調(diào)用python.exe把python文件運(yùn)行起來。 同時(shí),這里會通過Key Bindings綁定了一個(gè)快捷鍵,使得可以按一鍵就完成了所有編譯運(yùn)行流程,高效便捷。
5.2 更多擴(kuò)展
掌握了上面的核心原理之后,你想怎么玩就怎么玩。 比如你想編譯運(yùn)行一個(gè)Java文件? 比如你想單獨(dú)地運(yùn)行一個(gè)BAT腳本? 這些都將變得so easy ! 更重要的是,由于在build system里面我建立了一個(gè)BAT腳本做跳板(就是那個(gè)sublime-auto-xxx.bat腳本),那么我理論上我是可以通過它來執(zhí)行任何自動化運(yùn)行的事情的! 比如我就還建立了一個(gè)rsync遠(yuǎn)程同步的功能,一鍵實(shí)現(xiàn)本地目錄與遠(yuǎn)程目錄完全同步,這也是非常好用的。 更多的功能,真的就取決于你的想象力!
5.3 你還不試試看?
有了這個(gè)教程,你是不是可以把windows下編輯代碼-linux下命令行編譯的操作流程摒棄了? 有了這個(gè)教程,你是不是應(yīng)該把你的PyCharm關(guān)閉一段時(shí)間呢? 這么高效的工作方法,你都學(xué)會了嗎? 歡迎交流討論,期望你的寶貴建議。
![在這里插入圖片描述](https://file.elecfans.com//web2/M00/51/9A/poYBAGLK0OCAaCriAAf_YTKbGq0317.png)
6 更多分享
歡迎關(guān)注我的github倉庫01workstation,日常分享一些開發(fā)筆記和項(xiàng)目實(shí)戰(zhàn),歡迎指正問題。
同時(shí)也非常歡迎關(guān)注我的專欄,有問題的話,可以跟我討論,知無不答,謝謝大家。
![原創(chuàng)不易_new](https://file.elecfans.com//web2/M00/52/35/pYYBAGLK0OGAJPo5AAF4NqFJ5oc573.png)
審核編輯 黃昊宇
-
C語言
+關(guān)注
關(guān)注
180文章
7614瀏覽量
137800 -
python
+關(guān)注
關(guān)注
56文章
4809瀏覽量
85063 -
運(yùn)行環(huán)境
+關(guān)注
關(guān)注
0文章
9瀏覽量
7107
發(fā)布評論請先 登錄
相關(guān)推薦
美女手把手教你如何裝機(jī)(上)
美女手把手教你如何裝機(jī)(中)
手把手教你安裝Quartus II
手把手教你學(xué)LabVIEW視覺設(shè)計(jì)
手把手教你開關(guān)電源PCB排板
![<b class='flag-5'>手把手</b>教你開關(guān)電源PCB排板](https://file.elecfans.com/web1/M00/D9/4E/pIYBAF_1ac2Ac0EEAABDkS1IP1s689.png)
51單片機(jī)手把手教學(xué) (一)—— 開發(fā)環(huán)境搭建
![51單片機(jī)<b class='flag-5'>手把手</b>教學(xué) (一)—— 開發(fā)<b class='flag-5'>環(huán)境</b><b class='flag-5'>搭建</b>](https://file.elecfans.com/web1/M00/D9/4E/pIYBAF_1ac2Ac0EEAABDkS1IP1s689.png)
《嵌入式 - STM32開發(fā)指南》手把手教你搭建STM32開發(fā)環(huán)境 [Windows版 - 3]
![《嵌入式 - STM32開發(fā)指南》<b class='flag-5'>手把手</b>教你<b class='flag-5'>搭建</b>STM32開發(fā)<b class='flag-5'>環(huán)境</b> [Windows版 - 3]](https://file.elecfans.com/web1/M00/D9/4E/pIYBAF_1ac2Ac0EEAABDkS1IP1s689.png)
《嵌入式 - STM32開發(fā)指南》手把手教你搭建STM32開發(fā)環(huán)境 [Linux版 - 3]
![《嵌入式 - STM32開發(fā)指南》<b class='flag-5'>手把手</b>教你<b class='flag-5'>搭建</b>STM32開發(fā)<b class='flag-5'>環(huán)境</b> [Linux版 - 3]](https://file.elecfans.com/web1/M00/D9/4E/pIYBAF_1ac2Ac0EEAABDkS1IP1s689.png)
評論