【手把手教程】一文学会使用Sublime搭建轻量级的C语言gcc编译运行环境和Python运行环境(含所有配置流程及脚本)

举报
架构师李肯 发表于 2022/04/11 22:11:21 2022/04/11
【摘要】 如何使用sublime搭建C语言和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的图标,这个就是它了!
sublime的图标

3.3 安装Cygwin(gcc环境)

你可以从Cygwin的下载页面,下载指定的安装包,如下所示:
cygwin下载链接
下载到setup-x86_64.exe后,双击打开,按照提示一步步安装即可,注意,所有的选择项按默认的即可。

3.4 配置Sublime支持gcc编译运行程序

3.4.1 配置gcc.sublime-build

参考下图,
build system
在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 <stdio.h>

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

参考下图,
build system
在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,日常分享一些开发笔记和项目实战,欢迎指正问题。

同时也非常欢迎关注我的CSDN主页和专栏:

【CSDN主页-架构师李肯】

【RT-Thread主页-架构师李肯】

【C/C++语言编程专栏】

【GCC专栏】

【信息安全专栏】

【RT-Thread开发笔记】

【freeRTOS开发笔记】

【BLE蓝牙开发笔记】

【ARM开发笔记】

【RISC-V开发笔记】

有问题的话,可以跟我讨论,知无不答,谢谢大家。

原创不易_new

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。