Sublime text3配置C编译环境

导读

本文介绍sublime text3的C开发环境搭建,包括MinGW的安装,gcc运行C语言,在sublime中运行以及在cmd中运行的方法。另外对于MinGW和gcc,还有sublime的build文件做了简单介绍。


0x01 关于gcc

安装编译器是后续工作的基础。在windows下使用gcc编译C语言,通过安装MinGW实现。

安装MinGW

MinGW是Minimalist GNU on Windows的首字母缩写,安装后就可以使用很多的GNU工具。GNU(GNU’s Not Unix)是linux中的一个著名的项目,包含了gcc\g++\gdb等工具。也就是说,安装MinGw后,我们就可以使用gcc和g++命令了。

下载地址:https://sourceforge.net/projects/mingw/files/  ,下载一个MinGW安装器。

选择这几个包就够了,选择完成后单机installation菜单中的 Apply changes选项同意更改。

然后等待安装完成,默认安装路径是C:\MinGW


配置环境变量

为了方便,一般我们会把gcc所在的路径加入系统的环境变量,这样就可以直接使用gcc命令而不用绝对路径。

右键计算机->属性->高级系统设置->环境变量 把MinGW的bin文件夹路径加入path中,注意以英文分号;相隔。

mingw-env


gcc命令介绍

编译C语言:gcc -Wall source.c -o 可执行文件名

加入-Wall选项,打开常用的警告。

0x02 Sublime Text 3默认c/c++编译系统的不足

编译系统

把gcc加入环境变量以后,sublime中默认的编译系统就可以正常使用了。 sublime自带有默认的C++编译命令,对于cpp文件可正常编译运行。

不足之处

  1. 程序输出捕获到Sublime窗口中,这样导致不能运行时输入信息。执行含有scanf语句的代码会卡住。
  2. 默认情况下c和c++没有进行区分,全部当做c++格式来处理了。

解决办法:

  • 第一个是设置在新的cmd窗口执行程序,这样就可以输入信息。
  • 第二个是针对c语言单独写一个build配置文件。

0x03 新建C编译系统

选择tool –> Build System –> New Build System

然后输入以下代码:

{
    "working_dir": "$file_path",
    "cmd": "gcc -Wall \"$file_name\" -o \"$file_base_name\"",
    "file_regex": "^(..[^:]*):([0-9]+):?([0-9]+)?:? (.*)$",
    "selector": "source.c",
 
    "variants": 
    [
        {   
        "name": "Run",
            "shell_cmd": "gcc -Wall \"$file\" -o \"$file_base_name\" && start cmd /c \"\"${file_path}/${file_base_name}\" & pause\""
        }
    ]
}

保存在Sublime Text 3\Packages\User目录下,修改名为c.sublime-build。 这时候,可以在Tools -> Build System下看到刚才新建的c了

c-compile1

选中后就可以使用了。

由于默认情况下.c文件sublime识别为c++类型,所以使用自动选择的时候还需要修改一点:

c-compile2

点击红色箭头处的c++ 选择Open all with current extension as .. 然后选择C。这样以后打开.c文件就默认是c类型。 这时候按Ctrl+Shift+B

c-compile3

  • 第三个c就是对应执行配置文件中的第三行 gcc -Wall $file_name -o $file_base_name 作用是编译。
  • 第四个c-Run对应后面的命令 gcc -Wall $file -o $file_base_name && start cmd /c \”${file_path}/${file_base_name} & pause\” ,作用是是在新的cmd窗口运行。这样就可以对scanf等函数进行输入了。

0x04 中文编码乱码的问题

由于Sublime Text 3中文件默认编码格式是utf-8 ,而windows中的命令行默认编码格式是GBK 。所以代码中出现中文时运行会乱码。

解决思路也很简单,就是让他们编码一致就可以了。

修改源代码格式为GBK

Sublime原生并不支持GBK编码,但如果安装了ConvertToUTF8插件,就可以正确显示ANSI或者GBK编码的文件。因此,装插件后打开GBK编码的源代码文件,也不会乱码。

在编译命令gcc中加入选项 -fexec-charset=GBK 来说明将代码中的字符串按照GBK编码,从而和CMD窗口一致,保证不会乱码。

修改后的c语言的配置文件如下:

{
    "working_dir": "$file_path",
    "cmd": "gcc -Wall -fexec-charset=GBK \"$file_name\" -o \"$file_base_name\"",
    "file_regex": "^(..[^:]*):([0-9]+):?([0-9]+)?:? (.*)$",
    "selector": "source.c",
 
    "variants": 
    [
        {   
        "name": "Run",
            "shell_cmd": "gcc -Wall -fexec-charset=GBK \"$file\" -o \"$file_base_name\" && start cmd /c \"\"${file_path}/${file_base_name}\" & pause\""
        }
    ]
}
posted @ 2017-08-04 14:52  百年明日能几何  阅读(2199)  评论(0编辑  收藏  举报