gcc/g++编译器的安装与说明

1.gcc/g++编译器的安装

  gcc  yum install gcc

  g++  yum install gcc-c++

2.gcc/g++的作用

  将c/c++源代码编译成机器可识别的代码(指令)

3.编译过程

  预处理 通过预处理指令所包含的文件内容插入程序中(展开源文件的所有代码)

    gcc -E test.c -o test.i  产生一个预处理后的文件( .i文件 )

  编译  语法语义纠错,调用汇编程序生成成汇编代码

    编译时指定源程序,不用任何选项,会默认生成一个a.out文件

    gcc -S test.i -o test.s  产生一个汇编程序文件( .s文件 )

  汇编  将汇编代码翻译成机器所能识别的二进制指令

    gcc -c test.s -o test.o  产生一个目标文件( .o文件)

  链接  链接库,将所有代码合到一起生成可执行文件

    gcc test.o -o test    产生一个可执行文件

  gcc默认的链接方式为动态链接

4.gcc/g++的区别与联系

  1>对于*.c文件,gcc会将它当成c程序,而g++会将它当成cpp程序

  2>对于*.cpp文件,gcc与g++都会当它为cpp程序

  3>cpp编译阶段,g++会调用gcc

  4>cpp链接阶段,通常会用g++来完成,因为gcc命令不能自动与cpp程序使用的库链接

5.gcc编译器常用选项

  -c  只生成目标文件(*.o文件),不链接

  -E  只进行预处理,不编译,生成预处理后的(*.i)文件

  -S  生成汇编文件(*.s)文件

  -o  指定输出的可执行文件名称

  -g  在编译过程中产生调试信息

  -w  禁止警告,有时会隐藏程序中的错误

  -W  给出额外更详细的警告

  -Wall  给出所有有用的警告信息,有利于排查问题

gcc/g++编译器的安装与说明的更多相关文章

  1. CentOS 7 升级gcc/g++编译器

    gcc的升级必须要使用源码进行升级,也就说,必须要使用源码进行编译才行.我的7.2的CentOS目前自带的gcc是4.8.5的,gcc从4.8之后开始支持C++11,但是鉴于现在C++14.C++17 ...

  2. Linux环境下GNU, GCC, G++编译器

    版权声明:本文为博主原创文章,未经博主同意不得转载. https://blog.csdn.net/u012823258/article/details/36890125 一.GNU GNU是" ...

  3. Linux环境下GNU, GCC, G++编译器(转)

    一,GNU GNU是“GNU 's Not Unix”的递归缩写, Stallman宣布GNU应当发音为Guh-NOO(革奴)以避免与new这个单词混淆(注:Gnu在英文中原意为非洲牛羚,发音与new ...

  4. redhat6.4 gcc g++ rpm方式安装步骤

    centos源 包包自行下载 [root@localhost gcc]# rpm -ivh ppl-0.10.2-11.el6.x86_64.rpm warning: ppl-0.10.2-11.el ...

  5. 升级 树莓派的gcc/g++编译器到4.8

    首先,更新你的树莓派(避免编译出来版本不对导致不能insert)sudo apt-get update sudo apt-get upgrade sudo apt-get dist-upgrade s ...

  6. Linux下编译器的安装

    一.Linux下gcc/g++/gfortran的安装 (1).gcc Linux下自带gcc编译器.可以通过“gcc -v”命令来查看是否安装. (2).g++安装g++编译器,可以通过命令“sud ...

  7. windows 下 gcc/g++ 的安装(有图,一步一步)

    下载 mingw 首先打开 www.mingw.org .(注意版本,建议64bit) www.mingw.org 直接点击右上方的 Download Installer 即可下载. 点击 Downl ...

  8. Clang比 gcc/g++更人性化代码出错提示的C/C++编译器

    编译器方面的几个命令 gcc/g++ 一. 常用编译命令选项 常用用法 gcc -Wall test.c -o test gcc编译过程 .c ->(-E)-> .i[中间文件] -> ...

  9. Linux 之 编译器 gcc/g++参数详解

    2016年12月9日16:48:53 ----------------------------- 内容目录: [介绍] gcc and g++分别是gnu的c & c++编译器 gcc/g++ ...

随机推荐

  1. Linux基础命令---ipcs显示进程通信

    ipcs ipcs指令用来显示进程间通信状况.“-i”选项允许指定特定的资源id.将只打印有关此id的信息. 此命令的适用范围:RedHat.RHEL.Ubuntu.CentOS.Fedora.SUS ...

  2. CentOS 7Google浏览器

    CentOS 7安装并启动Google浏览器(★firecat亲测有效★) 2018年09月23日 12:42:47 libaineu2004 阅读数:3088    版权声明:本文为博主原创文章,未 ...

  3. Qt框架及模块认识

    小白自工作就接触Qt,一直都在使用Qt5.3.1版本,所以没有经历过大牛们把项目从Qt4程序到Qt5的烦恼,没准以后会碰到.对Qt所有的丰富的API表示惊叹,对于Qt的框架及模块认识也是极为模糊的,文 ...

  4. 使用AtomicLong,经典银行账户问题

    1.新建Account类,使用AtomicLong定义账户余额,增加和减少金额方法使用getAndAdd方法. package com.xkzhangsan.atomicpack.bank; impo ...

  5. replace用法替换实例

    实例一: 待处理字符串:str="display=test name=mu display=temp" 要求:把display=后的值都改成localhost JS处理方法: st ...

  6. java开发工具STS的下载及安装

    将下载后的压缩文件解压,在解压后的sts-bundle下的sts-3.9.1RELEASE目录中STS.exe便是可执行程序,用于启动STS,将该文件发送到桌面快捷方式,当我们想使用STS时可以快速的 ...

  7. 【Django基本命令002】

    在mac或者window的终端直接输入这些命令(不是Python的shell中) 一.创建Django项目之前必须先激活 具体方法可以参考Python机器语言学习博客 二.开始新建项目 1.新建一个d ...

  8. JS(JavaScript)的进一步了解6(更新中···)

    元素的属性 div.attributes 是所有标签属性构成的数据集合 div.classList 是所有class名构成的数组集合 在classList的原型链上看以看到add()和remove() ...

  9. P3321 [SDOI2015]序列统计

    思路 首先有个挺显然的DP \[ dp[i][(j*k)\%m]+=dp[i-1][j]\times dp[i-1][k] \] 想办法优化这个DP 这个dp也可以写成这样 \[ dp[i][j]=\ ...

  10. Xilinx Vivado的使用详细介绍(5):调用用户自定义封装的IP核

    Zedboard OLED Display Controller IP v1 介绍 Author:zhangxianhe 本文档提供了快速添加,连接和使用ZedboardOLED v1.0 IP内核的 ...