zoukankan      html  css  js  c++  java
  • 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的安装目录

  • 相关阅读:
    NFS(Network File System)即网络文件系统 (转)
    抓包神器 tcpdump 使用介绍 (转)
    sms短信网关对接
    spring 事务的传播级别和隔离级别
    持续集成是什么?
    理解Cookie和Session机制
    使用df -h命令查看磁盘空间使用率不算高,还有很多空余空间,但是创建文件或写入数据时一直报错磁盘写满
    删除文件后,磁盘空间没有释放的处理记录
    Springboot启动原理解析
    使用idea创建springboot项目
  • 原文地址:https://www.cnblogs.com/zkw-2014/p/4417919.html
Copyright © 2011-2022 走看看