Chinaunix首页 | 论坛 | 博客
  • 博客访问: 183946
  • 博文数量: 31
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 903
  • 用 户 组: 普通用户
  • 注册时间: 2014-04-11 15:05
个人简介

Never say die!

文章分类

全部博文(31)

文章存档

2014年(31)

分类: LINUX

2014-05-17 18:36:00

1 / gcc的使用 /**/ gcc的使用

                                                        gcc的常识


1、 gcc的全称: GNU C Compiler ,是GNU的一款编译器


2、 gcc通过后缀名来区别输入文件的类型;

  常用文件类型: .
                        
c                C语言源代码文件

                       .C/.cc                C++源代码文件        

                       .h                        头文件(head也即include)


                       .i                        已经预处理过的C源代码文件   //预处理:完成头文件和宏定义的展开        

                      .ii                        已经预处理过的C++源代码文件

                      .s                        汇编语言的源代码

                      .S                        预编译的汇编语言源代码文件

                      .o                        编译后的目标文件object

       

                                                              gcc基本用法


1、 gcc编译程序分为四个阶段产生可执行程序:

               Pre-Processing                     预处理                        

                                              gcc  -E  hello.c  -o  hello.i         //完成头文件和宏定义的展开,生成hello.i预处理文件


               Compiling                             编译                        

                                              gcc  -S  hello.i                         //生成汇编代码,生成hello.s的汇编文件


               Assembling                         汇编                        

                                              gcc  -c  hello.s                         //生成二进制目标文件,生成hello.o文件

       

               Linking                             链接                        

                                              gcc  hello.o  -o  hello               //链接相关库,生成可执行文件hello,没有后缀


        注:一般生成可执行程序,可以直接 gcc  hello.c  -o  hello

            运行该可执行程序:         ./hello                

                                       


2、 使用方法:

        gcc + 要编译的文件 + -o + 编译后生成的文件名                注:-o也即是output_filename,是指定编译后生成的文件名,

                                                                                                      不是编译选项, 如果没指定则默认生成a.out可执行文件

        eg:  gcc  hello.c  -o  hello       //将hello.c编译链接成可执行文件hello


        gcc + [编译选项] + 要编译的文件 + -o + 编译后生成的文件名

               

  常用选项: gcc  -c    hello.c                 //-c只编译,不链接成可执行文件,生成 hello.o 的目标文件

                    gcc  -O    hello.c                //-O对程序进行优化,使生成的可执行文件执行效率提高

                    gcc  -O2  hello.c               //-O2比-O更好的优化,是生成的可执行文件效率更高


  执行方法:         ./hello           //执行当前目录下的可执行文件,./表示当前目录,要执行其他目录的可执行文件,输入该文件的路径即可


  测试执行速度: time ./hello                //可以测试优化后的可执行文件的执行速度                                  


阅读(1458) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~