zoukankan      html  css  js  c++  java
  • gcc

    1. gcc: 全名 GNU C Compiler

    gcc编译器 能将C, C++, 汇编程序编译,链接成可执行文件。

    在linux系统中,可执行文件没有统一的后缀,系统从文件的属性来区分可执行文件和不可执行文件。

    2. gcc编译程序时,编译过程可以被细分为4个阶段:

    a.预处理(pre-processing)
    b.编译(Compling)
    c.汇编(Assembling)
    d.链接(Linking)

    3.gcc通过后缀来区别输入文件的类型:

    .c ----C语言源代码文件
    .a ---- 是由目标文件构成的库文件
    .C 或 .cc 或 .cxx ---- C++源代码文件
    .h ---- 头文件
    .i ---- 已经与处理过的C源代码文件
    .ii ---- 已经与处理过的C++源代码文件
    .o ---- 编译后的目标文件
    .s ---- 汇编语言源代码。
    .S ---- 经过预编译的汇编语言源代码
     
    4. gcc最基本用法:

    gcc [options] [filenames]


    gcc option 有100多个,
    几个最基本,最常用的参数如下:

    -o ---- output_filename

    -c ---- 只编译,不链接成可执行文件,即把.c等源代码编译成.o的目标文件,但是不链接。

    -g ---- 产生调试工具(GNU的gdb)所需要的符号信息,可以用来对编译出的程序进行调试。

    -O ---- 优化编译,链接过程,产生的可执行文件执行效率更高,但是编译,链接速度要慢些

    -O2 ---- 比O 更彻底的优化。

    -Idirname ---- 用来查找执行头文件目录的参数。

    -Ldirname ---- 将dirname所指的目录加入到库文件的目录列表中

    -lname ----

    -static ---- 静态链接库文件。

    -Wall ---- 生成所有警告信息

    -w ---- 不生成人和警告

    -DMACRO: 相当于程序中的#define MACRO。


    5. 链接 和 库 都有动态和静态两种:

    静态链接:把程序和库合在一起,每个程序都会有拷贝库。
    动态链接:不会把程序和库合在一起,会在运行时,去调用库中的一些函数。

    库也有动态库合静态库:

    动态库: .so 为后缀。
    静态库: .a 为后缀。

     

    补充:

    a. $time ./optimize   ---- 用来计运行optimize所耗费的时间

    b. $touch a.h   ---- 用来黏贴a.h文件


  • 相关阅读:
    解决IE6浏览器下position:fixed固定定位问题
    CSS中overflow:hidden在ie6、ie7无效不能隐藏解决办法
    liunx 中删除export设置的环境变量
    文件操作
    集合操作
    三级菜单
    字典操作
    字符串操作
    购物车程序
    列表操作
  • 原文地址:https://www.cnblogs.com/hehehaha/p/6333011.html
Copyright © 2011-2022 走看看