GCC学习记录

发布于 2020-07-20  91 次阅读


1. GCC

GNU编译器套装(英语:GNU Compiler Collection,缩写为GCC),指一套编程语言编译器,以GPL及LGPL许可证所发行的自由软件,也是GNU计划的关键部分,也是GNU工具链的主要组成部分之一。GCC(特别是其中的C语言编译器)也常被认为是跨平台编译器的事实标准。1985年由理查德·马修·斯托曼开始发展,现在由自由软件基金会负责维护工作。

原名为GNU C语言编译器(GNU C Compiler),因为它原本只能处理C语言。GCC在发布后很快地得到扩展,变得可处理C++。之后也变得可处理Fortran、Pascal、Objective-C、Java、Ada,Go与其他语言。

许多操作系统,包括许多类Unix系统,如Linux及BSD家族都采用GCC作为标准编译器。

GCC原本用C开发,后来因为LLVM、Clang的崛起,它更快地将开发语言转换为C++。许多C的爱好者在对C++一知半解的情况下主观认定C++的性能一定会输给C,但是Ian Lance Taylor给出了不同的意见,并表明C++不但性能不输给C,而且能设计出更好,更容易维护的程序[2][3]。

2.更新安装GCC

更新包列表:

sudo apt update

安装build-essential软件包

sudo apt install build-essential

验证GCC编译器是否已成功安装

gcc --version
3.练习

先来一个hello world试试水

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

键入gcc hello.cpp

不适用-o 指定时会在运行该命令的同一目录中创建名为a.out的二进制文件。

键入 ./a.out 执行程序

运行成功。

4.g++多文件编译

car.h文件

#ifndef CAR_H
#define CAR_H

class car{
private:
    int id;
    int type;
public:
    car(int id, int type);
    void dudu();

};
#endif

car.cpp文件

#include<iostream>
#include"car.h"

using namespace std;

car::car(int id, int type){
    this->id = id;
    this->type = type;
}

void car::dudu(){
    cout<<"type:"<<type<<" speak out!"<<endl;
}

main.cpp文件

#include<iostream>
#include"car.h"

using namespace std;

int main(){
    car taxi(12354, 0);
    taxi.dudu();

    return 0;
}

键入 g++ main.cpp car.cpp car.h

键入 ./a.out

成功编译运行。

5.makefile

新开。

如堕五里雾中
最后更新于 2022-03-25