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

  • 相关阅读:
    解决:fatal error LNK1104: 无法打开文件“libc.lib”
    解决:error LNK2026: 模块对于 SAFESEH 映像是不安全的
    相似性度量(Similarity Measurement)与“距离”(Distance)
    按下开机键后,电脑都干了些什么?
    解决win10中chm内容显示为空白的问题
    BootStrap 模态框基本用法
    error CS0016: 未能写入输出文件
    解决网页前端的图片缓存问题
    .net 新闻点击量修改,避免恶意刷新
    使用 jQuery 页面回到顶部
  • 原文地址:https://www.cnblogs.com/bj3251101/p/10745835.html
Copyright © 2020-2023  润新知