01.gcc入门(上)

◊基本框架:

a)         Gcc 主要特征

b)         Gcc编译四个步骤:预处理---》编译---》汇编---》链接

c)         Gcc常用选项

d)         Gcc编译多文件

 

 1.      Gcc主要特征

  (1)       gcc支持多种硬件平台;

  (2)       能够跨平台交叉编译,可以编译出能够在其它硬件平台上运行的程序。

 2.      Gcc编译四个步骤

       四个步骤:预处理---》编译---》汇编---》链接

    (1)     hello.c-à预处理器(cpp)-àhello.i--à编译器(ccl)-àhello.s(汇编程序)-à汇编器(as)-àhello.o(可重定位目标程序)

    (2)     hello.o和库文件--à链接器(ld)---à可执行程序

 3.      Gcc常用选项

    (1)       -o  产生目标(.i、.s、.o、可执行文件)   记忆技巧:iso  ESc

    (2)       -E  预处理                            

    (3)       -S  产生汇编文件(大写的S)

    (4)       -c  取消链接步骤,生成.o文件

    (5)       -Wall 编译时对错误发出警告,编译的时候最好加上 -Wall(warning all)。

    (6)       -I  添加头文件的搜索路径

    (7)       -L  添加库文件的搜索路径

    (8)       -llib  链接lib库

    (9)       -g    在目标文件中嵌入调试信息,方便gdb调试。

            将一些debug信息存放到目标文件和可执行文件里的一个符号表 (symbol table) 里。

        *   gcc  -v  显示编译过程的详细信息,当程序有错误时,可以用来帮助查找错误。

 4.      Gcc编译多文件

    例子:假如有三个文件:hello_fn.h  hello_fn.c  main.c

  (1)     一次性编译:   gcc  hello_fn.c  main.c   -o   newhello

  (2)     独立编译:

            Gcc  -Wall  -c  main.c  -o  main.o

            Gcc  -Wall  -c  hello_fn.c  –o  hello_fn.o

            Gcc  -Wall   main.o  hello_fn.o  -o  newhello

  独立编译的方法较好,在大的项目工程中,只需对更改过的文件重新编译,这样可以节省相当多的时间。

  在具体工程实践中需要用Makefile文件对其管理。

5.一些细节:

  gcc  --version  查询gcc的版本

  which  gcc    查询gcc的安装目录

posted @ 2015-04-11 16:35  那一抹斜阳  阅读(134)  评论(0编辑  收藏  举报