• Windows中使用GCC介绍


    Windows中使用GCC介绍

    GCC介绍

    GCC是由许多组件组成的。GCC原名为GNU C语言编译器(GNU C Compiler),只能处理C语言。但其很快扩展,变得可处理C++,后来又扩展为能够支持更多编程语言,如Fortran、Pascal、Objective -C、Java、Ada、Go以及各类处理器架构上的汇编语言等,所以改名GNU编译器集合(GNU Compiler Collection)。

    GCC是以GPL许可证所发行的自由软件,也是GNU计划的关键部分。GCC的初衷是为GNU操作系统专门编写一款编译器,现已被大多数类Unix操作系统(如Linux、BSD、MacOS X等)采纳为标准的编译器,甚至在微软的Windows上也可以使用GCC。GCC支持多种计算机体系结构芯片,如x86、ARM、MIPS等,并已被移植到其他多种硬件平台。

    注意:GCC与gcc,g++是不同的东西:

    GCC:GNU Compiler Collection(GUN 编译器集合),它可以编译C、C++、JAV、Fortran、Pascal、Object-C、Ada等语言。

    gcc是GCC中的GUN C Compiler(C 编译器)

    g++是GCC中的GUN C++ Compiler(C++编译器)

    【gcc-c++又叫做g++,g++默认语言设置为 C++,而且在连接的时候自动包含标准 C++ 库。

    gcc和g++的主要区别:

    1.对于 .c和.cpp文件,gcc分别当做c和cpp文件编译。

    gcc 指令为用户提供了“手动指定代表编译方式”的接口,即使用 -x 选项。例如,gcc -xc xxx 表示以编译 C 语言代码的方式编译 xxx 文件;而 gcc -xc++ xxx 则表示以编译 C++ 代码的方式编译 xxx 文件。

    2.对于 .c和.cpp文件,g++则统一当做cpp文件编译。

    3.使用g++编译文件时,g++会自动链接标准库STL,而gcc不会自动链接STL;在用gcc编译c++文件时,为了能够使用STL,需要加参数 –lstdc++ 。

    编译可以用gcc/g++,而链接可以用g++或者gcc -lstdc++。因为gcc命令不能自动和C++程序使用的库联接,所以通常使用g++来完成联接。但在编译阶段,g++会自动调用gcc,二者等价。因为gcc命令不能自动和C++程序使用的库联接,所以通常用g++来完成链接,为了统一起见,干脆编译/链接统统用g++了。】

    对于 gcc 和 g++,初学者只要知道,对于 C 语言程序的编译,我们应该使用 gcc 指令,而编译 C++ 程序则推荐使用 g++ 指令,这就足够了。

    Windows下如何gcc/g++编译器?

    首先安装gcc/g++编译器,若之前是安装过Dev-C++、code::blocks之类的,这一步可省了。但可能需要将“Dev-Cpp安装路径\MinGW64\bin” 添加到Path环境变量中,Dev-Cpp安装路径部分应是你的Dev-Cpp实际安装路径,
    我的Dev-Cpp安装路径是 C:\Program Files (x86)\Dev-Cpp
    因此,将
    C:\Program Files (x86)\Dev-Cpp\MinGW64\bin
    添加到Path环境变量中

    MinGW这个目录就是gcc移植到windows的结果。

    MinGW是Minimalist GNU on Windows的略称。MinGW 是为了那些不喜欢工作在 Linux 操作系统而留在 Windows 的人提供一套符合 GNU 的 GNU 工作环境。

    实际上 MinGW 并非一个 单纯的C/C++ 编译器,而是一套 GNU 工具集合,GCC是 MinGW 的核心所在。【若需要安装MinGW,详见 GCC编译器的安装教程(Windows环境)_nhyltt的博客-CSDN博客_gcc编译器安装

    gcc可以编译c,g++可以编译c++;gdb可以用来调试。

    在cmd中验证gcc是否正常执行

    在cmd控制台窗体以下,输入gcc -v。若已经安装成功好,会显示gcc的版本号信息。

    在cmd中验证g++是否正常执行

    在cmd控制台窗体以下,输入g++ -v。若已经安装成功好,会显示g++的版本号信息。

    在cmd中验证gdb是否正常执行

    在cmd控制台窗体以下,输入gdb -v。若已经安装成功好,会显示gdb的版本号信息。

    帮助选项--help,可以查看简要帮助

    gcc --help

    g++ --help

    gdb --help

    以g++ --help为例,查看g++简要使用帮助,如下图:

    下面介绍 G++ 编译器的基本使用方法

    使用g++编译运行C++程序

    在D盘新建文件夹MinGwDemo中

    用记事本建立一个test.cpp文件,内容如下:

    1. #include
    2. using namespace std;
    3. int main()
    4. {
    5. cout << "你好,世界!" << endl;
    6. cout << "Hello, world!" << endl;
    7. return 0;
    8. }

    参见下图:

    注意,保存时的设置:将默认编码UTF-8,修改为ANSI,防止g++编译后在CMD中运行中文显示乱码,若没改编码,也可用如下两法之一解决:

    编译时加选项 -fexec-charset=GBK 也可以,如g++ test2.cpp -o test2 -fexec-charset=GBK

    在cmd先输入运行 chcp 65001

    【CHCP是一个计算机指令,能够显示或设置活动代码页编号。】

    编译源文件使用

    g++ 源文件名

    g++ -o 可执行文件名 源文件名

    前者,生成的默认源文件名a .exe,g++ test.cpp;后者可以指定可执行文件名(不要写扩展名.exe),如g++ test.cpp -o test,指定可执行文件名test .exe

    打开cmd,切换路径到D:\MinGwDemo,再输入编译命令

    参见下图

    Ok!

    gcc编译器入门教程gcc编译器入门教程_颯沓如流星的博客-CSDN博客_gcc编译器

    gcc官方说明文档:Top (Using the GNU Compiler Collection (GCC))

  • 相关阅读:
    [附源码]计算机毕业设计springboot“科教兴国”支教门户网站
    搞定面试官 - 你可以介绍一下在 MySQL 中,哪些情况下索引会失效嘛?
    【附源码】计算机毕业设计SSM图书管理系统
    c#构建具有用户认证与管理的socks5代理服务端
    【数据结构】二叉树的链式实现及遍历
    理解 YOLOV1 第二篇 预测阶段 非极大值抑制(NMS)
    OpenCV项目开发实战--主成分分析(PCA)的特征脸应用(附C++/Python实现源码)
    Loguru_No.1_对于官网部分内容的理解
    阿里云服务器e系列是共享型?什么意思?
    C++ Primer第5版 习题答案 第十二章
  • 原文地址:https://blog.csdn.net/cnds123/article/details/126072293