• 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中的一个著名的项目,包含了gccg++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 3PackagesUser目录下,修改名为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""
            }
        ]
    }
  • 相关阅读:
    SQL语句基础之 单表查找
    SQL语句基础之 管理数据库,表 和 数据
    JavaWeb之 JSP:自定义标签
    JavaWeb之 JSP:内置对象,EL表达式,JSP标签基础
    JavaWeb之 JSP基础
    JavaWeb之Servlet:Cookie 和 Session
    JavaWeb之Servlet: ServletConfig 与 ServletContext
    JavaWeb之 Servlet执行过程 与 生命周期
    JavaWeb之Servlet:请求 与 响应
    Vue.js中 watch(深度监听)的最易懂的解释
  • 原文地址:https://www.cnblogs.com/xzitluyang/p/7285120.html
Copyright © 2020-2023  润新知