()

作者:极客小俊

一个把逻辑思维转变为代码的技术博主


首先了解一下什么是编译器?

概述

编译器,可以简单地将它理解为一种翻译器, 就类似于专门的翻译一样, 要知道,计算机只认识二进制也就是 0 和 1 组成的代码指令

而我们平常所编写和开发的的 C 、C++、java、php、Go、python等等代码计算机本身是根本无法识别的,只有将这些程序代码中的每条语句翻译成对应的二进制指令,计算机才能执行, 这就是编译器的核心作用!

什么是GCC?

GCC 全称 GNU Compiler Collection 是由GNU开发的编程语言编译器 所以说 GCC就是C语言的翻译器

那么GNU又是一个什么鬼? 这是一个了不起的计划 什么计划呢? 说到这个就不得不说一下历史了

讲故事GCC的历史

在 1983 年 有一个叫理查德·斯托曼的人发起的名为GNU计划 他的目标是打造出一套完全自由也就是自由使用、自由更改、自由发布、开源的操作系统, 你可以理解为不要钱! 然后这个系统就暂定为GNU 操作系统并且也设计出了这套系统的内核并命名为The Hurd

但是这个计划还没有搞出个啥花样就横空出世了另外一个开源操作系统Linux, 这个大家都知道吧 , 所以最终经过种种事情之后(此处省略几百字) , GNU 计划选择Linux 作为 GNU 操作系统的内核, 那么GNU有了这个Linux基础之后就基于这个平台开发了许多系统的部件 其中就有一个部件叫做GCC

现在有些人叫GNU/Linux 还有些人直接就叫Linux 也就是这么来的, 所以有的时候你可以理解为GCC就是为开源系统打造的一款编译器也可以说是Linux 下的C/C++ 编译器

GCC的强大

最初GCC 的确只是用来翻译C语言的, 随着时间的迭代不断的更新 ,不断的进步,GCC的翻译功能也得到了很大的扩展, 它不仅可以用来编译 C 语言,还可以编译 Fortran、Pascal、Objective -C、Java、Ada、Go 等多种编译语言所编写的代码

那么此时此刻的GCC功能上也已经不在单一了,而是一整套的组合拳功能, 是支持多种程序语言的编译器,算是一种编译器合集Compiler Collection 后来就被叫做 GNU编译器套件

GCC和Linux渊源极深, 目前几乎所有的 Linux 发行版默认安装有 GCC编译器

GCC的使用形式

我们既然学习的是C语言,那么GCC的核心目的是将我们编写的C语言程序编译成一个二进制可执行文件

GCC编译器本身是没有界面窗口,使用它必须编写对应的gcc 命令, 所以熟悉gcc命令就显得很重要了,否则你怎么编译你的C语言程序代码呢?

当然你也可以使用集成开发环境IDE 这些通常都集成了 GCC 编译器,例如:Visual Studio 2019, 集成了GCC 编译器功能的同时,还向用户提供了友好的可视化编辑界面, 不用你去记忆那么多的gcc命令照样可以肆无忌惮的编译你的C语言程序代码, 相对而言降低了学习成本, 但个人建议GCC的基本命令还是要学一下

但不是所有的IDE都集成了GCC的, 如果没有集成GCC 那么你就可能只有通过手工来进行代码的编译操作,也就是通过GCC的命令,来执行你的C语言文件, 这个就要分人了,有些人喜欢可视化操作,有些人习惯了命令行操作用相应的 GCC命令来编译C语言或其他程序

win10中如何安装与卸载GCC编译器?

什么是 MinGW

概述

MinGW 全称是:Minimalist GNU on Windows 你可以暂时理解它是一个移植到了 windows系统平台下的极简GCC编译器

我们知道GCC是在Linux系统上自动就预装好了的编译器, 那么我们有了MinGW 就可以在windows系统中使用GCC编译器了, 也就是说可以将C语言的源代码编译生成 Windows 下的可执行程序

小提示: 官网提供的 GCC 编译器是无法直接安装到 Windows系统平台上的, 如果我们想在 Windows 平台使用 GCC 编译器,就要安装 GCC 的移植版, 也就是 MinGW 当然还有Cygwin这就不过多赘述了!

总的来说 MinGW 就是 GCC 的 Windows 版本

MinGW 的特点

MinGW 是开源软件,免费使用,一些开源社区持续维护, 支持最新的 C语言 标准

题外话并且目前很多IDE里面集成有GCC, 但实际只是也就是将 MinGW 封装在这些IDE里面 ,让MinGW有图形化界面,操作简单,但内核其实就是MinGW

如果你选择的是一些IDE自带的编译器来编译C语言, 可能会自动生成一大堆杂七杂八的工程文件, 搞得新手摸不着头脑, MinGW 则只会生成一个可执行文件

所以对于初学 C语言 的朋友来说,MinGW 是一个不错的选择

总体来说MinGW 就是需要你动动手, 会一些gcc命令 等等就可以来对C语言的源代码进行编译成window下的可执行文件

而一些IDE则是通过点点按钮就自动编译了,不需要你使用gcc的一些相关命令都可以

如何安装MinGW

MinGW的下载地址如下:

https://osdn.net/projects/mingw/

https://sourceforge.net/projects/mingw-w64/files/

打开地址后在其中找到 Downloads 下载链接, 单击进入稍等片刻就开始下载了

下载方式

下载完成后,会得到一个名为 mingw-get-setup.exe 的安装包,双击打开它,

可以看到如下的对话框, 直接点击Install,即可

根据你自己的需求点击change按钮可以修改安装路径,建议不要在C盘, 这里我安装在D盘, 然后点击continue

进入 MinGW 配置器下载的界面,稍等一下, 待安装完成显示 100%就可以了, 安装完成之后点击continue,会自动弹出MinGW Installer Manager配置界面

进入到 MinGW Installer Manager 的界面, 它的作用是随时根据需要修改 GCC 编译器的配置

为了同时支持编译 C 语言 和 C++我们这里只需要选择两个选项:

mingw32-base-bin这个是用来编译C语言的

mingw32-gcc-g++-bin 这个是用来编译C++语言的

如图

在指定的选项上单击鼠标左键 选择Mark for installation打上安装标记就可以了, 如果选择错误了就点选Unmark取消标记就可以了,

个人建议全部选择免得麻烦!!

选择好了之后, 在菜单栏中选择Installation ----> Apply Changes

会弹出如下对话框 ,点击Apply 然后稍等片刻,直至安装成功即可!

当安装成功之后 显示如下图, 点击close按钮关闭即可!

到此MinGW安装就完成了!

并且在我的D盘的MinGW目录下会出现以下文件夹

小提示

如果有某些组件下载失败,没关系, 可以通过之前的MinGW Installer Manager安装界面进行手动选择指定的安装包进行再次安装 ,比如说安装完成之后你会发现bin目录下没有gcc这个执行程序

那么就可以通过MinGW Installer Manager来进行再次手动的选择安装 就可以了

所以MinGW Installer这个程序新手朋友们不要删除哦 , 免得到处找都找不到~

MinGW配置环境变量

科普一下 为什么要设置环境变量?

举个栗子

比如: 我们这里需要gcc.exe执行程序来编译C语言源代码, 那么这个gcc.exe程序文件在我电脑中的路径是D:\MinGW\bin下的

如图

那么如果我们要使用cmd命令行的形式来打开这个gcc.exe 是不是要使用一些基本的dos命令来进入到这个目录下对吧

如下图

通过这样子的方式来打开gcc 你不觉得很麻烦吗?但是难道我们每次要运行这个程序的时候都要先找到该.exe文件所在的路径, 然后运行,显然很蹩脚, 这时候就需要环境变量了

环境变量是在操作系统中一个具有特定名字的变量对象,它包含了一个或者多个应用程序所将使用到的信息

当要我们求操作系统来运行一个程序的时候, 但又没有告诉它程序所在的完整路径时,那么操作系统除了在当前目录下面寻找此程序外,还会自动的到环境变量中的Path路径去找 用户通过设置环境变量,来更好更加方便的来运行程序!

所以我们的gcc.exe 也应该配置到 环境变量中去,方便我们执行编译的操作!

如何手动配置gcc.exe到环境变量中?

我们依次打开 我的电脑----->属性 -----> 高级系统设置-----> 环境变量

win10系统中有两种环境变量:用户变量和系统变量

可以配置到当前用户变量的Path里面, 也可以配置到系统变量的Path里面

系统变量配置以后,整个计算机操作系统的所有用户有效

用户变量配置以后,仅对于当前计算机用户有效。

而系统变量与用户变量的Path的意思都是告诉操作系统在找的可执行文件存放的路径,它的查找流程如下:

1.当操作系统在执行一个用户命令或打开一个程序时,如果没有给出给文件的绝对路径,那么就会在当前目录下寻找相应的可执行文件 2.如果当前目录找不到对应可执行文件或程序,就会在`系统变量`的`Path`的路径列表中去寻找, 从上到下依次查找,最前面一条的优先级最高,如果找到程序就停止查找,后面的路径也不再执行了 3.如果`系统变量`的`Path`中的路径列表都找不到,那么再到`用户变量`的`Path`路径列表中去继续寻找

所以系统变量针对所有用户,而用户变量是当前用户私有的, 这个根据你自己的情况来选择就可以了

我这里就暂时配置到系统变量的Path中去, 选中Path 然后点击编辑按钮, 然后点击新建按钮

我这里的gcc.exe目录为D:\MinGW\bin, 那么新建之后的值就为它, 完成之后点击确定返回就可以了!

如图

到此环境变量的配置就完成了, 选中就可以编译我们的C语言程序代码了

你可以先打开cmd命令行窗口 输入以下命令先测试一下:

gcc++ --version g++ --version gdb --version

如果看到以下输出 说明正确配置了环境变量

如何卸载MinGW

卸载MinGW很简单, 找到MinGW的安装文件夹, 然后鼠标右键单击选择删除,就可以卸载了

并且把之前配置好的path环境变量的相应目录路径也删除掉!

win10下如何打开环境变量

我的电脑----->属性------->高级系统设置----->选择高级选项卡, 在最下面就可以看到环境变量

然后打开环境变量之后 点开, 再找到系统变量, 其中就有一个Path的变量, 点击编辑

然后找到之前配置的MinGW目录 删除就可以了!

输出你的第一个C语言程序

通过以上的安装和环境变量的配置之后,我们就可以在当前 Windows 平台上编译和运行我们的 C 或者 C++源代码程序了

举个栗子我们现在要输出一个经典的Hello, World!字符串

代码如下

#include<stdio.h> int main(void) { printf("Hello, world!\n"); return 0; } 1.手动命令行形式输出

打开记事本程序,复制一下以上的代码

然后另存为 hello.c文件 , 我这里就暂时保存到桌面

如图

然后在桌面打开cmd 在命令行中执行如下命令:

C:\Users\Administrator\Desktop>gcc hello.c -o test1

然后就会在桌面上生成一个test1.exe的可执行文件, 再次在命令行中输出这个test1名称即可输出最终结果!

如图

电脑

2.通过IDE(集成开发环境)编译输出C语言代码

概述

每次通过记事本和cmd方式单独地使用gcc编译器来输出你的C语言代码肯定不太方便对吧,那么就选择一款IDE集成开发环境来编辑你的C语言代码吧!

1.什么是IDE?

IDE 英文全称为: Integrated Development Environment 中文意思就是 集成开发环境

集成开发环境的的核心作用就 用来编写代码的

使用IDE的好处

代码还有相应的高亮颜色,便于开发者识别最重要的就是有代码提示,不像你用记事本要一个字母一个字母的敲出来具备代码调试的功能,方便提示出语法错误,逻辑错误 等功能具备项目管理的能力,例如你项目中的文件、图片 等这些资源用一个树形结构管理器来,就跟你的window资源管理器一样,方便开发者查找开发界面可以根据自己的需求进行皮肤上的美化

以上这些功能都被融入在了 集成开发环境当中!

这里在windows系统下我个人推荐CLion、Visual Studio Code、Visual Studio , 当然最好是你通过一段时间的C语言学习之后,再来使用这些IDE工具肯定会更加得心应手! 如果你是新手其实不建议一上来就使用IDE

2.使用CLion 编译C语言

CLion 下载地址 https://www.jetbrains.com/clion/

使用CLion 来编译C语言,你总要先下载安装吧,建议若条件允许购买正版吧,你懂的 这里就不在过多赘述了!

电脑

安装好CLion 之后打开它, 然后点击New Project

然后弹出以下对话框, 选择C Executable 之后根据你自己的需求设置项目保存路径,Language standard语言标准选择C99就行了, 完成之后点击create就可以自动生成项目了

如图

然后你就会看到自动生成好的项目的目录结构和一段基本的C语言代码

在CLion中配置MinGW

如果之前你安装了MinGW 那么最好在这里也在CLion配置一下, 方法如下

点击File菜单下的Settings选项

电脑

然后选择Build、Execution、Deployment(构建、执行、部署)选项下的Toolchains(工具链)选项

它会自动检测到MinGW的安装路径, 确保这里没有任何问题之后点击ok

最后我们就可以点击右上角绿色的的Run按钮 开始编译我们的C语言代码了

CLion控制台输出中文乱码

如果你想用printf输出中文,但是出现以下乱码的情况

如下图

解决办法:

既然是乱码 那么肯定是编码不正确导致的,所以修改一下CLion中的编码设置就可以了

首先最好保证我们整个项目的文件编码统一

点击File菜单下的Settings选项, 然后选择Editor下的File Encodings(文件编码)

把所有位置都设置为UTF-8编码 ,这是为了你在代码区编辑中文的时候 编码统一

如下图

然后点击右下角的UTF-8位置,会弹出当前输出窗口的内容编码, 这里修改为GBK编码

然后会弹出一个对话框选择Convert转换按钮就可以了

最后就可以正常输出中文字符串了!

修改控制台活动页字符集

当然如果懂一点的朋友 可以通过修改控制台代码页字符集为utf-8这样来解决CLion汉字中文乱码问题

只要在源代码中加入一行代码就可以了

代码如下

#include <stdio.h> int main() { system("chcp 65001"); //修改控制台活动页字符集为utf-8 printf("北京市, 朝阳区!\n"); return 0; }

如图

这样不用在底部修改当前输出窗口的内容编码也是可以达到不会乱码的效果!

3.使用Visual Studio Code 编译C语言

Visual Studio Code我主要是用来写前端,对于java和C这样要编译的语言来说用它来写就要做一定的配置和环境的搭建,因为默认情况下VS code不能直接对于C语言进行编译和调试的 所以虽然不是很方便,但是它免费啊!

要使用VS code来编辑和运行我们的C语言代码,前提是要下载好VS code和提前安装好集成gcc的MinGW

Vs code下载地址: https://code.visualstudio.com/

下载和安装这里就不过多赘述了,很简单 !

打开VS code 直接在插件市场中搜索以下插件:

C/C++

Code Runner

C/C++ GNU Global

C/C++ Compile Run

点击这些插件上的Install按钮, 先把这些插件都安装上!

安装完以上插件之后,随便在那个磁盘下建立一个test_c的空目录

然后选择File---->Open Folder 选择你刚才创建的空文件夹目录

如图

也可以选择Add Folder to workspace..来添加工作目录

然后在左侧就可以显示出刚才所选择的文件夹目录了,这也就是你的项目文件

接下来就新建一个.c的代码文件

如下图

我们在test_c文件夹下新建一个名为hello.c的文件,然后复制以下代码

#include <stdio.h> int main() { printf("hello world!\n"); return 0; }

最后点击右上角的运行按钮就可以执行C语言代码程序了!

效果如下图

4.使用Visual Studio 2019 编译C语言

概述

Visual Studio我们简称VS 是美国微软公司的集成开发环境, 可不是VS code哦这两个不一样的!, 它可以支持C、C++、C#、F#、J# SQL Python等语言的开发 还是很强大的一款IDE

Visual Studio下载地址https://visualstudio.microsoft.com/zh-hans/downloads/

个人的话建议下载社区版免费的,学习和普通开发完全足够了, 安装非常简单 就不过多赘述了!

安装的时候唯一只有一个地方要注意的就是: 使用C++桌面开发这一项要勾选上,否则可能会导致你的C或C++代码无法正常运行!

如图

VS 新建项目

安装好了之后打开VS

然后在弹出的对话框中选择c++空项目

接下来就填写项目配置了

项目名称之后生成的项目文件夹名称和工程名称都是这个, 这个目录会自动生成!

项目位置也就是选择你项目保存的目录位置

勾选解决方案和项目放在同一目录中,以后便于调试。

单击创建, 此时应该在桌面会生成一个test_c的文件夹目录

然后就也进入到VS的编辑界面了 , 接下来添加C语言代码源文件

在左侧的解决方案下方的test_c项目文件夹中,选中源文件 右键单击然后选择添加---->新建项

如图

小提示: 如果你在左侧没有看到解决方案资源管理器的话 那么可以按下键盘上的快捷键ctrl+Alt+L来进行打开

然后选择C++文件(.cpp), 把文件名称的后缀需要修改为.c 这里我新建名为hello.c的源文件

如下图

然后还是输入以下代码

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

接下来按下快捷键Ctrl+F5直接编译运行, 结果如下图所示

end

到此你已经开启C语言的学习之路了!






"点赞" "评论" "收藏"

大家的支持就是我坚持创作下去的动力!

如果以上内容有任何错误或者不准确的地方,欢迎在下面 留个言指出、或者你有更好的想法,欢迎一起交流学习


电脑