【C语言环境】Sublime中运行C语言时MinGW环境的安装

news2024/11/29 2:57:55

要知道,GCC 官网提供的 GCC 编译器是无法直接安装到 Windows 平台上的,如果我们想在 Windows 平台使用 GCC 编译器,可以安装 GCC 的移植版本。

目前适用于 Windows 平台、受欢迎的 GCC 移植版主要有 2 种,分别为 MinGW 和 Cygwin。其中,MinGW 侧重于服务 Windows 用户可以使用 GCC 编译环境,直接生成可运行 Windows 平台上的可执行程序,相比后者体积更小,使用更方便;而 Cygwin 则可以提供一个完整的 Linux 环境,借助它不仅可以在 Windows 平台上使用 GCC 编译器,理论上可以运行 Linux 平台上所有的程序。
如果读者仅需要在 Windows 平台上使用 GCC,可以使用 MinGW 或者 Cygwin;除此之外,如果读者还有更高的需求(例如运行 POSIX 应用程序),就只能选择安装 Cygwin。
本节要重点给大家介绍的是 MinGw 的安装和使用。MinGw 全称 Minimalist GNU for Windows,应用于 Windows 平台,可以为我们提供一个功能有限的 Linux 系统环境以使用一些 GNU 工具,比如 GCC 编译器、gawk、bison 等等。

MinGW的安装

相比在 Linux 平台上安装 GCC 编译环境,在 Windows 平台上安装 MinGW 是比较简单的,只需经历以下几个过程。

  1. 打开 MinGW 官网链接(点击即可进入官网),下载 MinGW 安装包。
    在这里插入图片描述

  2. 下载完成后,会得到一个名为 mingw-get-setup.exe 的安装包,双击打开它,可以看到如下的对话框:
    在这里插入图片描述

  3. 直接点击“Install”,进入下面的对话框:
    在这里插入图片描述

  4. 读者可根据自己操作系统的实际情况,自定义 MinGW 的安装位置(例如我选择将其安装到 E 盘),然后点击“continue”,进入下面的对话框:
    在这里插入图片描述

  5. 进入安装 MinGW 配置器的界面,读者耐心等待安装完成(显示 100%)即可。安装完成之后,我们会得到一个名为 “MinGW Installer Manager” 的软件,借助它,我们可以随时根据需要修改 GCC 编译器的配置。点击“continue”,会自动弹出配置界面,如下所示:
    在这里插入图片描述
    为使 GCC 同时支持编译 C 语言和 C++,需勾选图中标注的 2 项。我们知道,GCC 还支持其它编程语言,读者可借助此配置器,随时实际需要安装自己需要的编译环境。勾选完成后,在菜单栏中选择Installation -> Apply Changes,弹出如下对话框:
    在这里插入图片描述
    选择“Apply”。然后耐心等待,直至安装成功,即可关闭此界面。注意,整个安装过程中可能会提示某些组件下载失败,但没关系,后续需要时,可以通过 MinGw Installer(图 4 所示)安装界面中的 “All Packages”选项中,手动选择指定的安装包进行安装。

  6. 在安装完成的基础上,我们需要手动配置 PATH 环境变量。依次右击计算机(我的电脑) -> 属性 -> 高级系统设置 -> 环境变量,建议读者在当前用户的 PATH 环境变量中增加 MinGW 的安装路径,例如我将其安装到了E:\MinGW文件夹中,因此 PATH 环境变量的设置如下:
    在这里插入图片描述
    果输出 GCC 编译器的具体信息,则表示安装成功,例如:
    在这里插入图片描述

MinGW的使用

通过上面的安装,我们就可以在当前 Windows 平台上编译、运行 C 或者 C++ 程序了。
这里以运行一个 C 语言程序为例(存储路径为:D:\demo.c):

#include <stdio.h>
#include <stdlib.h>
int main(){
    printf("Hello, World!");
    system("pause");
    return 0;
}

在此基础上,在命令行窗口中执行如下指令:
C:\Users\mengma>gcc D:\demo.c -o D:\demo.exe

其会在 D 盘生成一个 demo.exe 可执行文件,找到该文件并双击,即可看到程序的执行结果:
Hello, World!

Windows配置Sublime Text

1.安装 sublime
2.需要环境变量中配置好了GCC
在这里插入图片描述
3.在已安装好 GCC 编译器的基础上,接下来开始正式配置 Sublime Text 编辑器。

  1. 要想使 Sublime Text 具备运行 C 语言程序的能力,需在菜单栏中依次点击“Tools -> Build System -> New Build System”,由此即可在 Sublime Text 打开一个临时文件,如下所示:
    在这里插入图片描述
    删除其所有内容,并将如下内容完整地复制到该文件中:
{
    "cmd": ["gcc","${file}","-o", "${file_path}/${file_base_name}"],
    "file_regex":"^(..[^:]*):([0-9]+):?([0-9]+)?:? (.*)$",
    "working_dir":"${file_path}",
    "selector": "source.c",
    "encoding":"cp936",
    "variants":
    [
        {
            "name": "C_Run",
            "cmd": ["cmd","/c", "gcc", "${file}", "-o", "${file_path}/${file_base_name}","&&", "cmd", "/c","${file_path}/${file_base_name}"]
        },
        {
            "name":"C_RunInCommand",
            "cmd": ["cmd","/c", "gcc", "${file}","-o","${file_path}/${file_base_name}", "&&","start", "cmd", "/c","${file_path}/${file_base_name} & pause"]
         }
    ]
}

此文件中的内容,实则是运行 C 语言程序时需要执行的 gcc 指令,只不过在 Sublime Text 文件中,需写成以上形式。
按 Ctrl+S 组合键,将此文件保存起来,其中文件名默认为 untitled.sublime-build(untitile 可以自定义,例如 gcc_sublime-build),保存路径即为按 Ctrl+S 弹出的路径(切忌手动修改此路径)。

  1. 重新打开 Sublime Text,并依次在菜单栏中选择“Tools -> Build System”, 在该选项中就可以看到上一步创建好的 gcc_sublime-build 的文件名 gcc
    在这里插入图片描述
    通过勾选 gcc 编译选项(直接在图中点击即可),我们就可以直接在 Sublime Text 运行写好的 C 语言程序。比如,在 Sublime Text 编写如下程序:
    在这里插入图片描述
    在此基础上,选择“Tools -> Build With…”选项,此时 Sublime Text 会弹出如下对话框:
    在这里插入图片描述
    可以看到,这里有 gcc、gcc-C_Run 和 gcc-RunInCommand 3 个选项,其中 gcc 用于编译程序(读者可自行查看执行结果),gcc-C_Run 用于在 Sublime Text 内部调用 GCC 编译器并显示程序的执行结果,gcc_RunInCommand 用于在命令行窗口中借助 gcc 指令运行该程序并输出执行结果
    在这里插入图片描述
    同样,如果想使 Sublime Text 具备执行 C++ 程序的能力,则只需再建立一个 g++_sublime-build 配置文件,并将如下内容拷贝到该文件中:
{
    "cmd": ["g++","-Wall", "${file}", "-o", "${file_path}/${file_base_name}"],
    "file_regex": "^(..[^:]*):([0-9]+):?([0-9]+)?:? (.*)$",
    "working_dir": "${file_path}",
    "selector": "source.c, source.c++",
    "encoding":"cp936",
    "variants":
    [
        {
            "name": "C++_Run",
            "cmd": ["cmd", "/c", "g++", "-Wall","${file}", "-o", "${file_path}/${file_base_name}", "&&", "cmd", "/c", "${file_path}/${file_base_name}"]
        },   
        {
            "name": "C++_RunInCommand",
            "cmd": ["cmd", "/c", "g++", "-Wall","${file}", "-o", "${file_path}/${file_base_name}", "&&", "start", "cmd", "/c", "${file_path}/${file_base_name} & echo.&pause"]
        }
    ]
}

其它操作步骤,和上面是完全一样的。由此,即可使 Sublime_Text 具备执行 C++ 程序的能力。

Mac OS X配置Sublime Text

Mac OS X 系统中,使 Sublime Text 具备执行 C、C++能力的配置过程,和 Windows 系统中的配置步骤大致相同,有以下 2 点不同:
默认情况下,该操作系统中已默认安装有 GCC 编译器,所以如果读者对编译器版本没有刻意的要求,则可以省略安装 GCC 的过程;
在 Mac OS X 系统中,需要修改 gcc_sublime-build 文件中的内容。
若想使 Sublime Text 具备执行 C 语言程序的能力,在菜单栏中依次点击“Tools -> Build System -> New Build System”,创建一个 gcc.sublime-build 配置文件,其文件内容如下:

{
    "cmd" : ["gcc -o ${file_base_name} $file_name"],
    "shell" : true,
    "working_dir" : "$file_path",
    "selector": "source.c",
    "variants" :
    [{
        "name" : "c_Run",
        "cmd" : "./${file_base_name}"
    },
    {
      "name": "c_RunInCommand",
      "shell_cmd": "open -a Terminal.app '${file_base_name}'"
    }]
}

其中,c_Run 用于在 Sublime Text 底部显示程序的执行结果;而 c_RunInCommend 用于在命令行窗口中显示 C 语言程序的执行结果。仍以图 5 中的 C 语言程序为例,则 2 个编译选项的执行效果如下图所示:
在这里插入图片描述
可以看到,使用如上指令调取命令行窗口执行 C 语言程序,除执行结果外,还会显示其它无用的信息。因此建议读者使用 c-Run 编译选项执行 C 语言程序,简单方便。
同理,通过创建 g++.sublime-build 配置文件,并将如下内容拷贝到该文件中:

{
    "cmd" : ["g++ -o ${file_base_name} $file_name"],
    "shell" : true,
    "working_dir" : "$file_path",
    "selector": "source.cpp",
    "variants" :
    [{
        "name" : "c_Run",
        "cmd" : "./${file_base_name}"
    },
    {
      "name": "c_RunInCommend",
      "shell_cmd": "open -a Terminal.app '${file_base_name}'"
    }]
}

即可实现令 Sublime Text 具备执行 C++ 程序的能力。

Ubuntu配置Sublime Text

要知道,Ubuntu 系统默认是不安装 GCC 编译器的,因此在配置 Sublime Text 之前,读者要自行安装 GCC 编译器(执行 sudo apt install gcc 指令即可安装)。

安装 GCC 编译器之后,即可开始配置 Sublime Text。Sublime Text 的配置过程和在 Windows 环境中大致相同,唯一不同之处在于,要修改 xxx.sublime-build 配置文件(读者可自定义 xxx 的内容)中的内容。

如果要使 Sublime Text 具备执行 C 语言程序的能力,则可以依次选择“Tools -> Build System -> New Build System”并创建一个 gcc.sublime-build 配置文件,其中包含如下内容:

{
    "encoding": "utf-8",
    "working_dir": "$file_path",
    "shell_cmd": "gcc \"$file_name\" -o \"$file_base_name\"",
    "file_regex": "^(..[^:]*):([0-9]+):?([0-9]+)?:? (.*)$",
    "selector": "source.c",

    "variants":
    [
    
     {   
        "name": "c_Run",
        "shell_cmd": "./${file_base_name}"
        },
        {   
        "name": "c_RunInCommand",
        "shell_cmd": "gnome-terminal -x bash -c \"'${file_path}/${file_base_name}';read -p '\nPress any key to continue...'\""
        }
    ]
}

如果想使 Sublime Text 具备执行 C++ 程序的能力,则可以创建一个 g++.sublime-build 配置文件,将如下内容拷贝到该文件中:

{
    "encoding": "utf-8",
    "working_dir": "$file_path",
    "shell_cmd": "g++ \"$file_name\" -o \"$file_base_name\"",
    "file_regex": "^(..[^:]*):([0-9]+):?([0-9]+)?:? (.*)$",
    "selector": "source.cpp",

    "variants":
    [
    
     {   
        "name": "c++_Run",
        "shell_cmd": "./${file_base_name}"
        },
        {   
        "name": "c++_RunInCommand",
        "shell_cmd": "gnome-terminal -x bash -c \"'${file_path}/${file_base_name}';read -p '\nPress any key to continue...'\""
        }
    ]
}

由此,就完成了对 Sublime Text 的配置。仍以图 5 中的 C 语言程序为例,如下是使用 Sublime Text 执行它的效果图:
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1560090.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【算法竞赛进阶指南】0x11 栈

0x11 栈 基础应用 两个栈维护前面区间的最小元素 41. 包含min函数的栈 - AcWing题库 可以开个小根堆维护最小值&#xff0c;但是这样时间是logN的。如果只用一个变量来存&#xff0c;一旦出现了出栈操作就无从下手了。因此用一个线性结构来保存每个历史时刻的最小值。 开两个…

vue3封装Element分页

配置当前页 配置每页条数 页面改变、每页条数改变都触发回调 封装分页 Pagination.vue <template><el-paginationbackgroundv-bind"$attrs":page-sizes"pageSizes"v-model:current-page"page"v-model:page-size"pageSize":t…

常用字符串函数及模拟实现

1.strlen() 用法:求字符串长度 size_t strlen(const char *Str) 参数:字符串的起始地址,可以传地址也可以直接传一个字符串 返回值:字符串长度 模拟实现: 自己实现求字符串长度的函数(三种方法)-CSDN博客 2.strcpy() 用法:拷贝字符串 char* strcpy(char*_Destination,co…

【PduR路由】IPduM模块详细介绍

目录 1.IpduM功能简介 2.IpduM模块依赖的其他模块 2.1RTE (BSW Scheduler) 2.2PDU Router 2.3COM 3.IpduM功能详解 3.1 功能概述 3.2 I-PDU多路复用I-PDU Multiplexing 3.2.1 Definitions and Layout 3.2.2通用功能描述 General 3.2.3模块初始化 Initialization 3.…

fpga_awb

色温: sesor原始图像中的白色如果不经AWB处理&#xff0c;在高色温(如阴天)下偏蓝&#xff0c;在低色温下偏黄。 引入白平衡算法 而AWB的核心就是调整图像色温&#xff0c;使得摄像头采集的图像更加真实&#xff0c;达到人眼观察的效果。 白平衡一般通过调节传感器输出图像RGB…

CCF-CSP19<2020-06>-第1/2题

202006-1 线性分类器 题目&#xff1a;202006-1 题目分析&#xff1a; 给定n个点&#xff0c;并标记为AB两类&#xff0c;问给定直线是否能将其分为两个点集。 简单数学知识&#xff0c;点在直线上满足axbyc0&#xff0c;点在直线割平面所得的上下其值会正负相反。 AC代码…

信息安全技术基础知识总结

一、信息安全基础知识 信息安全基本要素&#xff1a; 1. 机密性&#xff08;C&#xff09;&#xff1a;确保信息不暴露给未授权的实体或进程 2. 完整性&#xff08;I&#xff09;&#xff1a;只有得到允许的人才能修改数据&#xff0c;并且能够判别出数据是否已被篡改 3. 可用性…

大话设计模式之外观模式

外观模式&#xff08;Facade Pattern&#xff09;是一种软件设计模式&#xff0c;旨在提供一个简单的接口&#xff0c;隐藏系统复杂性&#xff0c;使得客户端能够更容易地使用系统。这种模式属于结构型模式&#xff0c;它通过为多个子系统提供一个统一的接口&#xff0c;简化了…

docker无脑部署zabbix6.0+agent

文章目录 前言一、安装docker-compose二、部署Zabbix Server 6.0agent1.创建父目录2.拉取镜像3.编辑docker-compose.yml文件 二、浏览器访问Zabbix1.url栏输入http://ip/2.修改主机配置 总结 前言 随着监控的不断发展&#xff0c;zabbix这门技术也越来越重要&#xff0c;很多人…

PVE设置显卡直通(二:Linux显卡直通,以及Linux系统下安装cuda库)

PVE设置显卡直通(一:硬件设置) 本文仅记录PVE关于Linux下的显卡直通步骤 例程不过多阐述 ps: 无直通经验的同学,先参阅 PVE设置显卡直通(一:硬件设置),再参阅本博文 参阅完成 PVE设置显卡直通(一:硬件设置)后,直接在PVE面板中添加显卡硬件到自己的主机即可,此文中…

【Java与数学】若不等式x^2-a*x+a<0的解集中恰有3个整数,求a的范围?

【分析】 既然不等式存在解集&#xff0c;说明一元二次方程x^2-a*xa0有解&#xff1b; 解之间横跨三个整数&#xff0c;说明Δ大于0&#xff1b; 三个整数必然是连续的&#xff0c;因为f(x)x^2-a*xa最多只与x轴存在两个交点&#xff0c;这是题设里的隐含条件。 【传统解法】…

C++项目——集群聊天服务器项目(十)点对点聊天业务

本节来实现C集群聊天服务器项目中的点对点聊天业务&#xff0c;一起来试试吧 一、点对点聊天业务 聊天服务器中一个重要的功能就是实现点对点聊天&#xff0c;客户端发送的信息包含聊天业务msgid、自身 的id和姓名、聊天对象的id号以及聊天信息&#xff0c;例如&#xff1a; …

C语言TCP服务器模型 : select + 多线程与双循环单线程阻塞服务器的比较

观察到的实验现象: 启动三个客户端: 使用双循环阻塞服务器:只能accept后等待收发,同时只能与一个客户端建立连接,必须等已连接的客户端多次收发 明确断开后才能与下个客户端连接 使用IO多路复用select:可以同时接收所有的连接请求,并且连接状态一直是存活的,直到客户端关闭连…

离散数学--谓词逻辑之复习与前束范式与谓词演算的推理理论

引子&#xff1a;在命题演算中&#xff0c;常常要化成规范形式&#xff0c;对于谓词的演算&#xff0c;可以化成与他等价的范式&#xff01; 前束范式定义&#xff1a; 一个公式&#xff0c;如果量词均非否定地在全式的开头&#xff0c;它们的作用域延伸到整个公式的末尾&…

八、大模型之Fine-Tuning(1)

1 什么时候需要Fine-Tuning 有私有部署的需求开源模型原生的能力不满足业务需求 2 训练模型利器Hugging Face 官网&#xff08;https://huggingface.co/&#xff09;相当于面向NLP模型的Github基于transformer的开源模型非常全封装了模型、数据集、训练器等&#xff0c;资源…

工作究竟是谁的?

在近两年的就业环境中&#xff0c;普遍存在着挑战与不确定性&#xff0c;许多人追求的是一种稳定的工作和收入来源。在这样的背景下&#xff0c;我们来探讨一个核心问题&#xff1a;工作的归属是谁的&#xff1f; 根据《穷爸爸富爸爸》中提出的ESBI四象限理论&#xff0c;我们可…

【经典算法】LeetCode14:最长公共前缀(Java/C/Python3实现含注释说明)

最长公共前缀 题目思路及实现方式一&#xff1a;横向扫描思路代码实现Java版本C语言版本Python3版本 复杂度分析 方式二&#xff1a;纵向扫描思路代码实现Java版本C语言版本Python3版本 复杂度分析 方式三&#xff1a;分治思路代码实现Java版本C语言版本Python3版本 复杂度分析…

单元测试mockito(一)

1.单元测试 1.1 单元测试的特点 ●配合断言使用(杜绝System.out) ●可重复执行 。不依赖环境 ●不会对数据产生影响 ●spring的上下文环境不是必须的 ●一般都需要配合mock类框架来实现 1.2 mock类框架使用场景 要进行测试的方法存在外部依赖(如db,redis,第三方接口调用等),为…

3.31学习总结

(本次学习总结,总结了目前学习java遇到的一些关键字和零碎知识点) 一.static关键字 static可以用来修饰类的成员方法、类的成员变量、类中的内部类&#xff08;以及用static修饰的内部类中的变量、方法、内部类&#xff09;&#xff0c;另外可以编写static代码块来优化程序性…

权限问题(Windows-System)

方法&#xff1a;用命令来写一个注册表的脚本 &#xff1f;System是最高级用户&#xff0c;但不拥有最高级权限 编写两文档&#xff1a;system.reg 和 remove.reg,代码如下&#xff1a; system.reg&#xff1a; Windows Registry Editor Version 5.00[-HKEY_CLASSES_ROOT\*…