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