zoukankan      html  css  js  c++  java
  • GCC编译器

    GCC编译器

           GCC是一个用于linux系统下编程的编译器。对于linux嵌入式系统开发来说是一种最普遍的工具。

          gcc除了编译程序的功能外,还含其他相关工具。它能把易于使用的高级语言编写的源代码构建成能在

    计算机直接执行的二进制代码。在linux下最常用的是用于编译程序。  

             GCC支持的体系机构有40余种,常见的有x86系列、ARM、Power PC等,同时还能运行在不同的操

    作系统上,如Linux、Solaris、Windows等。   GCC除了支持C语言外,还支持多种其他语言,如C++、

    Ada、Java、Objective-C、FORTRAN、Pascal等。  

    1.gcc使用语法:

        GCC 【option】【filename】···                                                                                                           

    其中option为gcc使用时的选项(参数),filename为用gcc处理的文件名

    2.gcc所遵循的部分约定规则:     

     .c为后缀的文件,C语言源代码文件;

       .a为后缀的文件,是由目标文件构成的档案库文件;

     .C,.cc或.cxx 为后缀的文件,是C++源代码文件;

       .h为后缀的文件,是程序所包含的头文件;

     .i 为后缀的文件,是已经预处理过的C源代码文件;

     .ii为后缀的文件,是已经预处理过的C++源代码文件;

     .m为后缀的文件,是Objective-C源代码文件;

        .o为后缀的文件,是编译后的目标文件;

     .s为后缀的文件,是汇编语言源代码文件;

     .S为后缀的文件,是经过预编译的汇编语言源代码文件。

    3.gcc编译器的执行过程                                                                                                                            

          使用gcc由C语言源代码文件生成可执行文件的过程:预处理(也称预编译,Preprocessing)、编译(Compilation)、汇编(Assembly)和链接(Linking)。

    (1)预处理:完成源代码中的宏和include展开工作      gcc -E test.c -o   test.i                         

    (2)编译:把预处理后的结果编译成汇编代码       gcc -S test.i   -o test.s                                      

    (3)汇编:把编译的结果汇编成目标代码模块           gcc -c test.s   -o test.o                          

    (4)链接:把多个目标代码模块链接成生成一个大的目标模块,得到可执行文件      gcc   test.o -o test  

    以上过程中的test.c为C源代码,test为可执行文件。

    4.gcc常用的模式 

              GCC常用的两种模式是:编译模式和编译链接模式。                                                                 

    (1)gcc -o test   test.c     此过程为由C源代码(test.c)直接编译生成可执行文件(test)             

    (2)gcc -c test.c     此时默认生成名为test.o的目标文件                        

    或自己指定输出文件名称即:gcc -c   test.c -o mytest.o      此时生成的目标文件名为mytest.o     

    此过程中由源代码(test.c)编译生成的目标文件test.o或mytest.o虽然也是机器代码但是不可执行。

    (3)多个源文件生成一个目标文件时的gcc模式                                                                          

          gcc -o test   first.c   second.c   third.c 

    5.gcc编译器的常用选项

           -x langage 标示源文件所用的语言                     

        -x none    把上面的 -x langage都关掉        

          -c   把源文件编译成目标代码,不做连接                  

       -S 把源文件编译成汇编代码,不做汇编和连接      

        -E    输出预处理结果,不进行编译、汇编、连接        

         -o file   指名输出名为file                                

         -v 把整个编译过程的输出信息都打印出来     

       -C 同-E参数配合用,让预处理结果把注释保留,方便读取   

        -g 把调试开关打开,让编译的目标文件有调试信息    

        -I dir 宏include需要搜寻的目录dir                  

          -L dir 搜寻库文件(*.a)的路径dir                    

         -Wall 发出gcc可以提供的所有有用的警告信息

  • 相关阅读:
    js中的this指针(五)
    一个链式调用 setTimeout的例子
    js中的this指针(四)
    js中的this指针(三)
    NOJ 爱过
    Greatest Greatest Common Divisor HD5207
    Greatest Greatest Common Divisor HD5207
    Greatest Greatest Common Divisor HD5207
    Greatest Greatest Common Divisor HD5207
    Four Inages Strateg
  • 原文地址:https://www.cnblogs.com/cjt-java/p/3186316.html
Copyright © 2011-2022 走看看