7Linux编程工具(二).ppt_第1页
7Linux编程工具(二).ppt_第2页
7Linux编程工具(二).ppt_第3页
7Linux编程工具(二).ppt_第4页
7Linux编程工具(二).ppt_第5页
已阅读5页,还剩9页未读 继续免费阅读

下载本文档

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

文档简介

第七章Linux编程工具 二 本章目标 Makefile工具编写简单的makefile文件Makefile自动化变量多级目录编译方法 make工具 人们通常利用make工具来自动完成编译工作 这些工作包括 如果仅修改了某几个源文件 则只重新编译这几个源文件 如果某个头文件被修改了 则重新编译所有包含该头文件的源文件 利用这种自动编译可大大简化开发工作 避免不必要的重新编译 Makefile make工具通过一个称为makefile的文件来完成并自动维护编译工作 makefile需要按照某种语法进行编写 其中说明了如何编译各个源文件并连接生成可执行文件 并定义了源文件之间的依赖关系 当修改了其中某个源文件时 如果其他源文件依赖于该文件 则也要重新编译所有依赖该文件的源文件 Makefile基本规则 TARGET DEPENDENCIES COMMAND 目标 TARGET 程序产生的文件 如可执行文件和目标文件 目标也可以是要执行的动作 如 clean 依赖 DEPENDENCIES 是用来产生目标的输入文件 一个目标通常依赖于多个文件 Makefile基本规则 命令 COMMAND 是make执行的动作 一个可以有多个命令 每个占一行 注意 每个命令行的起始字符必须为TAB字符 如果DEPENDENCIES中有一个或多个文件更新的话 COMMAND就要执行 这就是Makefile最核心的内容 最简单的Makefile例子 main main oadd osubtract ogccmain oadd osubtract o omainmain o main cadd hsubtract hgcc cmain c omain oadd o add cadd hgcc cadd c oadd osubtract o subtract csubtract hgcc csubtract c osubtract oclean rm fmainmain oadd osubtract o Makefile自动化变量 请演示更复杂的makefile 常见伪目标 PHONY allinstallclean Makefile中常见函数 wildcard函数当前目录下匹配模式的文件例如 src wildcard c notdir函数去除路径例如 notdir src patsubst函数模式匹配替换例如 patsubst c o src 等价于 src c o shell函数执行shell命令例如 shellls d 多级目录Makefile 1 在顶层目录中编写一个Makefile CC gccSUBDIR shellls d ELF mainROOTSRC wildcard c ROOTOBJ ROOTSRC c o SUBSRC shellfind SUBDIR name c SUBOBJ SUBSRC c o ELF ROOTOBJ SUBOBJ CC o ELF ROOTOBJ SUBOBJ c o echo D F F CC c D F o D F clean rm ELF TOPOBJ SUBOBJ 多级目录Makefile 2 在各子目录分别编写Makefileinclude各子目录makefileincludemakefile文件名进入各目录进行makemake C目录名多个makefile间传递变量值export变量名 总结 VI工具使用Gcc编译原理Gdb调试程序方法Linux库文件和头文件Makefile工具编写简单的makefile文件 课后练习 封装链表模块模块中涵盖链表的初始化 增删

温馨提示

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

评论

0/150

提交评论