书签 分享 收藏 举报 版权申诉 / 17
上传文档赚钱

类型嵌入式Linux应用程序开发教程03-Linux下的C编程基础课件.ppt

  • 上传人(卖家):三亚风情
  • 文档编号:3428312
  • 上传时间:2022-08-30
  • 格式:PPT
  • 页数:17
  • 大小:746.01KB
  • 【下载声明】
    1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
    2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
    3. 本页资料《嵌入式Linux应用程序开发教程03-Linux下的C编程基础课件.ppt》由用户(三亚风情)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
    4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
    5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
    配套讲稿:

    如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。

    特殊限制:

    部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。

    关 键  词:
    嵌入式 Linux 应用程序 开发 教程 03 编程 基础 课件
    资源描述:

    1、嵌入式嵌入式Linux应用程序开发标准教程应用程序开发标准教程三 Linux下的下的C编程基础编程基础第三章 Linux 下的C 编程基础v本章目标 熟悉Linux 系统下开发环境 熟悉gcc 编译器基本原理 熟练使用gcc 编译器常用选项 熟练使用gdb 调试技术 熟悉Makefile 基本原理及语法规范 熟练使用autoconf 和automake 生成Makefile嵌入式嵌入式Linux应用程序开发标准教程应用程序开发标准教程3.1 Linux下下C语言编程概述语言编程概述v3.1.1 C 语言简单回顾 ANSI C 硬件无关性 中级语言 结构化语言 功能齐全 可移植性强编译过程示意图

    2、嵌入式嵌入式Linux应用程序开发标准教程应用程序开发标准教程3.1 Linux下下C语言编程概述语言编程概述v3.1.2 Linux 下C 语言编程环境概述 编辑器vi 编译链接器gcc 调试器gdb 项目管理工具make嵌入式嵌入式Linux应用程序开发标准教程应用程序开发标准教程3.3 gcc编译器编译器vgcc编译器版本 GNU Compiler Collection http:/gcc.gnu.org GNU CC 4.6.2(2011.10.26)GNU CC 4.6.3GCC 4.3.0 GCC 2.95 July 31,1999 GCC 3.0 June 18,2001 GCC

    3、 3.2 August 14,2002 GCC 3.3May 13,2003 December 3,1997 GCC 4.4.5 GCC 4.6.3Oct 26,2011嵌入式嵌入式Linux应用程序开发标准教程应用程序开发标准教程3.3 gcc编译器编译器v gcc编译环境 GNU CC ANSI C C、C+、Object C、Java、Fortran、Pascal后缀名 所对应的语言 后缀名 所对应的语言 .c C 原始程序 .s/.S 汇编语言原始程序 .C/.cc/.cxx C+原始程序 .h 预处理文件(头文件).m Objective-C 原始程序 .o 目标文件 .i 已经过预

    4、处理的C 原始程序 .a/.so 编译后的库文件 .ii 已经过预处理的C+原始程序 嵌入式嵌入式Linux应用程序开发标准教程应用程序开发标准教程3.3 gcc编译器编译器v3.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)预处理:生成文件编译文

    5、件.i编译:代码翻译成汇编语言编译文件.s汇编:转成目标文件编译文件.o二进制代码连接:默认使用动态库,生成可执行文件嵌入式嵌入式Linux应用程序开发标准教程应用程序开发标准教程3.3 gcc编译器编译器v 3.3.2 gcc 编译选项分析(1)总体选项选项 含义-c 只是编译不链接,生成目标文件“.o”-S 只是编译不汇编,生成汇编代码 -E 只进行预编译,不做其他处理 -g 在可执行程序中包含标准调试信息 -o file 把输出文件输出到file 里 -v 打印出编译器内部编译各过程的命令行信息和编译器的版本 -I dir 在头文件的搜索路径列表中添加dir 目录 -L dir 在库文件

    6、的搜索路径列表中添加dir 目录 -static 链接静态库 -llibrary 连接名为library 的库文件 嵌入式嵌入式Linux应用程序开发标准教程应用程序开发标准教程3.3 gcc编译器编译器v 3.3.2 gcc 编译选项分析(2)警告和出错选项选项含义-ansi 支持符合ANSI 标准的C 程序 -pedantic 允许发出ANSI C 标准所列的全部警告信息 -pedantic-error 允许发出ANSI C 标准所列的全部错误信息 -w 关闭所有告警 -Wall 允许发出gcc 提供的所有有用的报警信息 -werror 把所有的告警信息转化为错误信息,并在告警发生时终止编

    7、译过程 (3)优化选项-On 来控制优化代码的生成,0、1、2、3 调试的时候最好不使用任何优化选项,只有当程序在最终发行的时候才考虑对其进行优化嵌入式嵌入式Linux应用程序开发标准教程应用程序开发标准教程3.4 gdb调试器调试器v3.4.1 gdb 使用流程 gcc 编译过程一定要加上选项“-g”gdb 调试可执行文件 查看文件 l 设置断点 b nb n if var=20 查看断点情况 info b 运行代码 r 查看变量值 p+变量名 单步运行 n s 恢复程序运行 c嵌入式嵌入式Linux应用程序开发标准教程应用程序开发标准教程3.4 gdb调试器调试器v3.4.2 gdb 基本

    8、命令 help 1工作环境相关命令 2设置断点与恢复命令函数断点条件断点 3gdb 中源码查看相关命令 4gdb 中查看运行数据相关命令 5gdb 中修改运行参数相关命令v实验:用gdb调试程序的bug,P87嵌入式嵌入式Linux应用程序开发标准教程应用程序开发标准教程3.5 Make工程管理器工程管理器v自动编译管理器v通过读入Makefile 文件的内容来执行大量编译工作v用户只需编写一次简单的编译语句v3.5.1 Makefile 基本结构 Makefile 是Make 读入的唯一配置文件 需要由make工具创建的目标体(target),通常是目标文件或可执行文件 要创建的目标体所依赖

    9、的文件(dependency_file)创建每个目标体时需要运行的命令(command)嵌入式嵌入式Linux应用程序开发标准教程应用程序开发标准教程3.5 Make工程管理器工程管理器v3.5.1 Makefile 基本结构 Makefile 格式target:dependency_files command Make 格式make target 示例:hello.o:hello.c hello.h gcc c hello.c o hello.omake hello.o嵌入式嵌入式Linux应用程序开发标准教程应用程序开发标准教程3.5 Make工程管理器工程管理器v3.5.2 Makefi

    10、le 变量 时间戳 make 允许在Makefile 中创建和使用变量 变量是在Makefile 中定义的名字,用来代替一个文本字符串,该文本字符串称为该变量的值 可以代替目标体、依赖文件、命令以及makefile 文件中其他部分 两种变量定义方式递归展开方式,格式为VAR=var简单展开方式:定义格式为VAR:=var Make 中变量格式为$(VAR)嵌入式嵌入式Linux应用程序开发标准教程应用程序开发标准教程3.5 Make工程管理器工程管理器v 3.5.2 Makefile 变量 预定义变量命令格式含 义 AR 库文件维护程序的名称,默认值为ar AS 汇编程序的名称,默认值为as

    11、CC C编译器的名称,默认值为cc CPP C预编译器的名称,默认值为$(CC)E CXX C+编译器的名称,默认值为g+FC FORTRAN编译器的名称,默认值为f77 RM 文件删除程序的名称,默认值为rm f ARFLAGS 库文件维护程序的选项,无默认值 ASFLAGS 汇编程序的选项,无默认值 CFLAGS C编译器的选项,无默认值 CPPFLAGS C预编译的选项,无默认值 CXXFLAGS C+编译器的选项,无默认值 FFLAGS FORTRAN编译器的选项,无默认值 嵌入式嵌入式Linux应用程序开发标准教程应用程序开发标准教程3.5 Make工程管理器工程管理器v 3.5.2

    12、 Makefile 变量 Makefile中常见自动变量命令格式含 义$*不包含扩展名的目标文件名称$+所有的依赖文件,以空格分开,并以出现的先后为序,可能包含重复的依赖文件$第一个依赖文件的名称$?所有时间戳比目标文件晚的依赖文件,并以空格分开$目标文件的完整名称$所有不重复的依赖文件,以空格分开$%如果目标是归档成员,则该变量表示目标的归档成员名称 嵌入式嵌入式Linux应用程序开发标准教程应用程序开发标准教程3.5 Make 工程管理器工程管理器v 3.5.3 Makefile 规则 1隐式规则 2模式规则%隐式规则目录 对应语言后缀名 规则 C编译:.c变为.o$(CC)c$(CPPF

    13、LAGS)$(CFLAGS)C+编译:.cc或.C变为.o$(CXX)-c$(CPPFLAGS)$(CXXFLAGS)Pascal编译:.p变为.o$(PC)-c$(PFLAGS)Fortran编译:.r变为-o$(FC)-c$(FFLAGS)嵌入式嵌入式Linux应用程序开发标准教程应用程序开发标准教程3.6 Make工程管理器工程管理器v 3.5.4 Make管理器的使用 常用的命令行选项v 实验:编写包含多文件的Makefile,P89命令格式含 义-C dir 读入指定目录下的Makefile -f file 读入当前目录下的file文件作为Makefile -i 忽略所有的命令执行错误 -I dir 指定被包含的Makefile所在目录 -n 只打印要执行的命令,但不执行这些命令 -p 显示make变量数据库和隐含规则 -s 在执行命令时不显示命令 -w 如果make在执行过程中改变目录,则打印当前目录名

    展开阅读全文
    提示  163文库所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
    关于本文
    本文标题:嵌入式Linux应用程序开发教程03-Linux下的C编程基础课件.ppt
    链接地址:https://www.163wenku.com/p-3428312.html

    Copyright@ 2017-2037 Www.163WenKu.Com  网站版权所有  |  资源地图   
    IPC备案号:蜀ICP备2021032737号  | 川公网安备 51099002000191号


    侵权投诉QQ:3464097650  资料上传QQ:3464097650
       


    【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。

    163文库