码迷,mamicode.com
首页 > 编程语言 > 详细

第5课 嵌入式C语言编译器

时间:2017-05-28 09:50:27      阅读:307      评论:0      收藏:0      [点我收藏+]

标签:预处理   com   系统   c语言   mpi   程序   ext   enter   内核   

1. GCC与gcc

(1)GCC:(GNU Compiler Collection)

  GNU编译器集合,包含众多语言的编译器,如C、C++、Java、D、Objective-C等

(2)gcc特指GCC中的C语言编译器

(3)GCC与嵌入式:多数嵌入式操作系统都是基于GCC进行源码编译。如Linux、VxWorks、Android等。

(4)实际开发中,内核开发一般用gcc应用开发一般用gcc/g++/gdc

2. 交叉编译

(1)背景

  ①嵌入式设备往往资源受限

  ②不可能在嵌入式上直接对处理器进行编程

(2)解决方案

  ①在开发主机(PC)上对源码进行编译

  ②最终生成目标主机(嵌入式设备)的可执行程序

(3)gcc是如何进行交叉编译的?

  ①配置目标主机的编译工具链如:arm-linux

  ②配置工具链的具体版本(根据具体的目标代码选择相应的工具链版本,正确使用关于硬件体系结构的特殊编译选项

(4)案例:大型企业嵌入式开发环境

技术分享 

3. 初识编译器

(1)编译器构成

技术分享 

(2)编译过程

技术分享 

(3)扩展问题:多语言混合开发

  ①开发方式1:从语言到语言(如.NetFrame框架)

技术分享 

  ②开发方式2:从语言到可执行的二进制代码(如QQ的开发)

 

技术分享 

  ③开发方式3:

技术分享 

4. gcc关键编译选项

(1)预处理指令:gcc -E file.c -o file.i

(2)编译指令:  gcc -S file.i -o file.s

(3)汇编指令:  gcc -c file.s –o file.o

(4)生成映射文件:gcc -WL,-MP=test.map file.c

(5)宏定义:      gcc -D‘TEST="test"‘ file.c

(6)获取系统头文件路径:gcc -v file.c

(7)生成依赖关系:

  ①获取目标的完整依赖关系:gcc -M test.c

  ②获取目标的部分依赖关系:gcc -MM test.c

(8)指定库文件及库文件搜索路径:

  ①gcc test.c -L. -lfunc  //.表示当前目录

  ②其中-L选项指定库文件的搜索路径,-l选项指定库文件

【实例分析】gcc编译选项

 

第5课 嵌入式C语言编译器

标签:预处理   com   系统   c语言   mpi   程序   ext   enter   内核   

原文地址:http://www.cnblogs.com/5iedu/p/6915031.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!