zoukankan      html  css  js  c++  java
  • 01gcc入门(上)

    n  基本框架:

    a)         Gcc 主要特征

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

    c)         Gcc常用选项

    d)         Gcc编译多文件

    1. 1.      Gcc主要特征

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

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

    1. 2.      Gcc编译四个步骤

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

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

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

    1. 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  显示编译过程的详细信息,当程序有错误时,可以用来帮助查找错误。

    1. 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文件对其管理。

    1. 一些细节:

    gcc  --version  查询gcc的版本

    which  gcc    查询gcc的安装目录

  • 相关阅读:
    训练总结
    图论--最短路--SPFA模板(能过题,真没错的模板)
    图论--最短路-- Dijkstra模板(目前见到的最好用的)
    The 2019 Asia Nanchang First Round Online Programming Contest B Fire-Fighting Hero(阅读理解)
    关于RMQ问题的四种解法
    The Preliminary Contest for ICPC Asia Xuzhou 2019 徐州网络赛 K题 center
    The Preliminary Contest for ICPC Asia Xuzhou 2019 徐州网络赛 XKC's basketball team
    The Preliminary Contest for ICPC Asia Xuzhou 2019 徐州网络赛 D Carneginon
    ZOJ 3607 Lazier Salesgirl (枚举)
    ZOJ 3605 Find the Marble(dp)
  • 原文地址:https://www.cnblogs.com/xieyang/p/3919554.html
Copyright © 2011-2022 走看看