嵌入式Linux应用程序开发教程03-Linux下的C编程基础.ppt_第1页
嵌入式Linux应用程序开发教程03-Linux下的C编程基础.ppt_第2页
嵌入式Linux应用程序开发教程03-Linux下的C编程基础.ppt_第3页
嵌入式Linux应用程序开发教程03-Linux下的C编程基础.ppt_第4页
嵌入式Linux应用程序开发教程03-Linux下的C编程基础.ppt_第5页
已阅读5页,还剩12页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

嵌入式Linux应用程序开发标准教程,三 Linux下的C编程基础,第三章 Linux 下的C 编程基础 本章目标 熟悉Linux 系统下开发环境 熟悉gcc 编译器基本原理 熟练使用gcc 编译器常用选项 熟练使用gdb 调试技术 熟悉Makefile 基本原理及语法规范 熟练使用autoconf 和automake 生成Makefile,嵌入式Linux应用程序开发标准教程,3.1 Linux下C语言编程概述,3.1.1 C 语言简单回顾 ANSI C 硬件无关性 中级语言 结构化语言 功能齐全 可移植性强,编译过程示意图,嵌入式Linux应用程序开发标准教程,3.1 Linux下C语言编程概述,3.1.2 Linux 下C 语言编程环境概述 编辑器 vi 编译链接器 gcc 调试器 gdb 项目管理工具 make,嵌入式Linux应用程序开发标准教程,3.3 gcc编译器,gcc编译器版本 GNU Compiler Collection GNU CC 4.6.2 (2011.10.26) GNU CC 4.6.3,GCC 4.3.0,GCC 2.95,July 31, 1999,GCC 3.0,June 18, 2001,GCC 3.2,August 14, 2002,GCC 3.3,May 13, 2003,December 3, 1997,GCC 4.4.5,GCC 4.6.3,Oct 26, 2011,嵌入式Linux应用程序开发标准教程,3.3 gcc编译器,gcc编译环境 GNU CC ANSI C C、C+、Object C、Java、Fortran、Pascal,嵌入式Linux应用程序开发标准教程,3.3 gcc编译器,3.3.1 gcc 编译流程解析 gcc编译过程 格式: gcc 选项 源文件 选项 目标文件,Pre-processor (cpp / gcc -E),Compiler (cc1 / gcc -S),Assembler (as / gcc -c),Linker (ld),hello.c (text),hello.i (text),hello.s (text),hello.o (binary),hello (binary),printf.o (binary),预处理:生成文件编译文件.i,编译:代码翻译成汇编语言编译文件.s,汇编:转成目标文件编译文件.o二进制代码,连接:默认使用动态库,生成可执行文件,嵌入式Linux应用程序开发标准教程,3.3 gcc编译器,3.3.2 gcc 编译选项分析 (1)总体选项,嵌入式Linux应用程序开发标准教程,3.3 gcc编译器,3.3.2 gcc 编译选项分析 (2)警告和出错选项,(3)优化选项 -On 来控制优化代码的生成,0、1、2、3 调试的时候最好不使用任何优化选项,只有当程序在最终发行的时候才考虑对其进行优化,嵌入式Linux应用程序开发标准教程,3.4 gdb调试器,3.4.1 gdb 使用流程 gcc 编译过程一定要加上选项“-g” gdb 调试可执行文件 查看文件 l 设置断点 b n b n if var=20 查看断点情况 info b 运行代码 r 查看变量值 p + 变量名 单步运行 n s 恢复程序运行 c,嵌入式Linux应用程序开发标准教程,3.4 gdb调试器,3.4.2 gdb 基本命令 help 1工作环境相关命令 2设置断点与恢复命令 函数断点 条件断点 3gdb 中源码查看相关命令 4gdb 中查看运行数据相关命令 5gdb 中修改运行参数相关命令 实验:用gdb调试程序的bug,P87,嵌入式Linux应用程序开发标准教程,3.5 Make工程管理器,自动编译管理器 通过读入Makefile 文件的内容来执行大量编译工作 用户只需编写一次简单的编译语句 3.5.1 Makefile 基本结构 Makefile 是Make 读入的唯一配置文件 需要由make工具创建的目标体(target),通常是目标文件或可执行文件 要创建的目标体所依赖的文件(dependency_file) 创建每个目标体时需要运行的命令(command),嵌入式Linux应用程序开发标准教程,3.5 Make工程管理器,3.5.1 Makefile 基本结构 Makefile 格式 target: dependency_files command Make 格式 make target 示例: hello.o: hello.c hello.h gcc c hello.c o hello.o make hello.o,嵌入式Linux应用程序开发标准教程,3.5 Make工程管理器,3.5.2 Makefile 变量 时间戳 make 允许在Makefile 中创建和使用变量 变量是在Makefile 中定义的名字,用来代替一个文本字符串,该文本字符串称为该变量的值 可以代替目标体、依赖文件、命令以及makefile 文件中其他部分 两种变量定义方式 递归展开方式,格式为VAR=var 简单展开方式:定义格式为VAR:=var Make 中变量格式为$(VAR),嵌入式Linux应用程序开发标准教程,3.5 Make工程管理器,3.5.2 Makefile 变量 预定义变量,嵌入式Linux应用程序开发标准教程,3.5 Make工程管理器,3.5.2 Makefile 变量 Makefile中常见自动变量,嵌入式Linux应用程序开发标准教程,3.5 Make 工程管理器

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论