• 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的安装目录

  • 相关阅读:
    Kubernetes实战总结
    Kubernetes实战总结
    Kubesnetes实战总结
    Kubernetes实战总结
    【转载】Nginx、HAProxy、LVS三者的优缺点
    Kubernetes实战总结
    【解决】 Streaming server stopped unexpectedly: listen tcp: lookup localhost on 114.114.114.114:53: no such host
    Kubernetes实战总结
    (转载)常用正则表达式大全——包括校验数字、字符、一些特殊的需求
    css选择器参考手册
  • 原文地址:https://www.cnblogs.com/xieyang/p/3919554.html
Copyright © 2020-2023  润新知