zoukankan      html  css  js  c++  java
  • gcc/g++编译器的安装与说明

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

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

       使用yum进行安装需要进入root用户

      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    产生一个可执行文件

      链接分为静态链接和动态链接:

        静态链接:需要在链接后添加"  -static ",将所有的代码包括标准库的实现全部链接到可执行文件中;

          缺点:冗余度大,编译出來的文件比较大

        动态链接:在可执行文件中只保存所需使用的函数的符号,符号表;

          优点:可执行文件小,各个模块处于解耦状态,且代码复用性高

        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  给出所有有用的警告信息,有利于排查问题

  • 相关阅读:
    下载字体的正确姿势
    字体基础知识与实际运用
    CSP复习与模板
    地理必修三知识点
    LaTeX公式手册(全网最全)
    动态规划求解0/1背包问题
    JavaScript对象简介(一)
    DOM文档对象模型简介
    SQLServer 的case when语句使用实现统计
    批量初始化数组和memset函数
  • 原文地址:https://www.cnblogs.com/bj3251101/p/10745835.html
Copyright © 2011-2022 走看看