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

Posted 架构师李肯

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了实用教程手把手教程,一文学会使用Sublime搭建轻量级的C语言gcc编译运行环境和Python运行环境(含所有配置流程及脚本)相关的知识,希望对你有一定的参考价值。

一、功能诉求

不知道你是否也有类似的困惑:我想要C代码快速验证一段代码的功能是否正常,但是像我这样长期以Linux命令行编译C代码为主,一般的开发模式都是,都是Window下使用编辑器编辑代码,而编译是需要切换到Linux下。
虽然这也是主流的嵌入式编译流程,但是如果有一种不用切到Linux就可以完成的IDE,我想应该会提高不少工作效率。
另外,一般我们嵌入式开发中,gcc作为非常主流的C编译器,学习好它并灵活应用好它,对我们的技术提升也是帮助非常大。
所以,最好这个IDE是使用gcc来编译C代码的,而不是微软的C编译器,因为它并不是一个主流的嵌入式编译环境。
同样的,在编译Python代码的时候,也有类似的问题。不过好在Python环境,可以使用PyCharm。但这个IDE是需要另外安装的,如果我有一个IDE环境或者说是一个编辑器工具,可以同时兼顾gcc编译C代码和运行Python代码,那是不是少了一个IDE的负担,从工具的使用上,我们都是熟能生巧,越多使用同款工具,越能更快速地掌握其高效工作的方法。

二、为何选用Sublime?

以上讲了这么多,再来说说,为何我会选择Sublime作为这个编辑器的载体。

1. 跨平台

Sublime有windows版本、Linux版本、也有MacOS版本,这些主流的平台,都可以有同样的IDE表现,这无疑减少了使用IDE的学习迁移成本。

2. 支持N多种语言

几乎你想得到的主流编译语言,它都支持,语法高亮这种刚需,自然是必不可少。

3. 非常轻量化

本质它就是一个编辑器,而不是一个复杂的IDE。所以它能做到非常轻量级,作为程序员,往往都喜欢这种简单高效的工具,而不喜欢类似VSxxxx那种繁琐而笨重的IDE,这也是为何一大堆程序员会非常高频使用Notepad++这种轻量化的编辑器。

4. 非常方便建立工程项目

对比Notepad++,我认为在见工程上,Sublime绝对是甩它一条街,因为Sublime是直接把你工程代码的目录文件夹,拖拉进来,工程就生成。就好比下面的工程,mbedtls的代码:

5. 丰富的插件/脚本功能

一个工具能不能高效使用的一个参考维度是,能不能提供插件化定制或脚本化定制的功能。而这一点,Sublime在设计之初就很好地考虑到了,自然支持插件化和脚本化,没有任何问题。

6. 丰富的自定义快捷键

一个工具能不能高效使用的另一个参考维度是,能不能支持自定义快捷键?这一点,无疑是加分项,每个人都有自己熟悉的操作方式,当有了自己熟悉的快捷键,想工作效率不提高都难哦!

三、搭建C语言gcc编译运行环境

1. 环境说明

本教程的环境:
PC Sublime: Windows10 Sublime v3.2.2 非注册版本
Cygwin:v9.3.0
gcc: v10.2.0

2. 安装Sublime

你可以从Sublime的官网下载指定平台的安装包,然后按照提示安装好软件即可。
安装好软件后,在桌面可以看到Sublime的图标,这个就是它了!

3. 安装Cygwin(gcc环境)

你可以从Cygwin的下载页面,下载指定的安装包,如下所示:

下载到setup-x86_64.exe后,双击打开,按照提示一步步安装即可,注意,所有的选择项按默认的即可。

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

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就找不到了。

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放在哪个路径,把那个路径填进去即可。
比如我的是:

4.3 配置快捷键

如下图所示:

在Sublime的菜单栏Pererences -> Key Bindings,之后会跳出一个自定义快捷键的配置文件,将右侧的文件修改成以下内容:

[
	{        
     	"keys": ["f10"],//这一行是自己设的快捷键,其它为复制的棕色字体部分  
        "command": "build", "args":
        {
        	"select": true
        }
    },
]

如下图:

注意这里配置的快捷键是F10,如果你想配置成你想要的快捷键,注意不要与现有的快捷键冲突即可。
配置完之后,按下F10就可以看到脚本被调起来了。

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文件处于最前端编辑状态,不能切换到其他文件,因为这里是会把当前编辑的文件名传递给编译脚本,达到编译运行的效果的。

四、搭建Python运行环境

有了gcc的环境搭建的基础上,配置Python的运行环境就简单很多了。

1. 环境说明

本教程的环境:
PC Sublime: Windows10 Sublime v3.2.2 非注册版本
python: v3.7.8

2. Python环境安装

本小节可参考教程,具体的python版本可以自行选择,安装成功之后,打开cmd,输入python -v,可以看到类似的版本信息,证明你的python环境安装OK了。
注意:安装过程中,务必选择把python添加到环境变量中去,否则可能会影响脚本的正确运行。

C:\\Users\\redtea>python -V
Python 3.7.8

3. 配置Sublime支持运行python程序

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就找不到了。

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

3.3 配置快捷键

如果gcc那一步已经配置好了,本步骤可以跳过,因为他们是共有的快捷键,配置成F10就好了。

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文件处于最前端编辑状态,不能切换到其他文件,因为这里是会把当前编辑的文件名传递给运行脚本,达到运行的效果的。

五、总结

1. 原理分析

核心流程原理就是:
新建一个build system流程,
而这个流程仅仅是把当前编辑的文件名取到,
然后传递给cmd开启的一个sublime-auto-xxx.bat脚本,
这个脚本就负责对传入的文件(C文件或python文件)做更多的处理:
  — C文件的话,就调用gcc.exe先把它编译成exe,然后把exe运行起来
  — python文件的话,就调用python.exe把python文件运行起来
同时,这里会通过Key Bindings绑定了一个快捷键,使得可以按一键就完成了所有编译运行流程,高效便捷。

2. 更多扩展

掌握了上面的核心原理之后,你想怎么玩就怎么玩。
比如你想编译运行一个Java文件?
比如你想单独地运行一个BAT脚本?
这些都将变得so easy !
更重要的是,由于在build system里面我建立了一个BAT脚本做跳板(就是那个sublime-auto-xxx.bat脚本),那么我理论上我是可以通过它来执行任何自动化运行的事情的!
比如我就还建立了一个rsync远程同步的功能,一键实现本地目录与远程目录完全同步,这也是非常好用的。
更多的功能,真的就取决于你的想象力!

3. 你还不试试看?

有了这个教程,你是不是可以把windows下编辑代码-linux下命令行编译的操作流程摒弃了?
有了这个教程,你是不是应该把你的PyCharm关闭一段时间呢?
这么高效的工作方法,你都学会了吗?
欢迎交流讨论,期望你的宝贵建议。

以上是关于实用教程手把手教程,一文学会使用Sublime搭建轻量级的C语言gcc编译运行环境和Python运行环境(含所有配置流程及脚本)的主要内容,如果未能解决你的问题,请参考以下文章

『Python开发实战菜鸟教程』实战篇:一文带你了解人脸识别应用原理及手把手教学实现自己的人脸识别项目

『Python开发实战菜鸟教程』实战篇:一文带你了解人脸识别应用原理及手把手教学实现自己的人脸识别项目

『Python开发实战菜鸟教程』实战篇:一文带你了解人脸识别应用原理及手把手教学实现自己的人脸识别项目

『Python开发实战菜鸟教程』实战篇:一文带你了解人脸识别应用原理及手把手教学实现自己的人脸识别项目

『Python开发实战菜鸟教程』实战篇:一文带你了解人脸识别应用原理及手把手教学实现自己的人脸识别项目

sublime Text3插件教程