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

(0)

相关推荐