美文网首页
5_嵌入式C语言编译器

5_嵌入式C语言编译器

作者: 编程半岛 | 来源:发表于2018-03-28 18:39 被阅读35次

    关键词:GCC与gcc有什么不同、交叉编译、 gcc关键编译选项

    1. GCC与gcc有什么不同?

    • GCC(GNU Compiler Collection):GNU编译器集合,包含众多语言的编译器。如:C、C++、Java、D、Objective-C
    • gcc:特指GCC中的C语言编译器

    2. GCC VS 嵌入式

    • 多数嵌入式操作系统都是基于GCC进行源码编译,如Linux,Android,等。
    • 实际开发中的使用:
      1)内核开发:gcc
      2)应用开发:gcc/g++/gdc

    3. 什么是交叉编译?

    • 背景:嵌入式设备往往资源受限,不可能在嵌入式上直接对处理器进行编程
    • 解决方案:在开发主机上(PC)对源码进行编译,最终生成目标主机(嵌入式设备)的可执行程序

    4. gcc是如何进行交叉编译的?

    • 配置目标主机编译工具链(如:arm-linux)
    • 配置工具的具体版本
      1)根据具体的目标代码选择相应的工具链版本
      2)正确使用关于硬件体系结构的特殊编译选项

    5. gcc关键编译选项

    • 预处理指令:预处理器文本替换
      gcc -E file.c -o file.i
    • 编译指令:编译器将c代码翻译成汇编代码
      gcc -S file.i -o file.s
    • 汇编指令:汇编器将代码汇编成目标机器上的二进制代码
      gcc -c file.s -o file.o
    • 生成映射文件:
      gcc -wl,-Map=test.map file.c
    • 宏定义:
      gcc -D`TEST="test'' ' file.c
    • 获取系统头文件路径:
      gcc -v file.c
    • 生成依赖关系:
      gcc -M file.c
      gcc -MM file.c
    • 指定文件及库文件搜索路径
      gcc test.c -L -lfunc
      -L选项:指定库文件的搜索路径
      -l选项:指定库文件

    声明:此文章为本人在学习狄泰软件学院《十二月提升计划》所做的笔记,参考书籍《专业嵌入式软件开发》——李云,文章中包含狄泰软件资料内容和《专业嵌入式软件开发》资料内容,一切版权归狄泰软件《专业嵌入式软件开发》所有!

    相关文章

      网友评论

          本文标题:5_嵌入式C语言编译器

          本文链接:https://www.haomeiwen.com/subject/dytucftx.html