makefile讲解.ppt_第1页
makefile讲解.ppt_第2页
makefile讲解.ppt_第3页
makefile讲解.ppt_第4页
makefile讲解.ppt_第5页
已阅读5页,还剩28页未读 继续免费阅读

下载本文档

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

文档简介

1、Makefile说明Makefile概述Makefile编写Makefile运行Makefile应用程序实例,字典课培训,UNIX shell脚本是什么,Makefile是什么,程序的编译链接,Makefile概述,Makefile规则Makefile. prerequisites mand target目标档案prerequisites源档案command源档案目标档案创建规则、shell命令、Makefile内容、Makefile中主要包含5茄子内容显式规则隐式规则变量参考档案注释3、初始化文件中的变量。4、推断隐藏的规则,分析所有规则。5、创建所有目标文件的相关性链。6、根据从属关系确定

2、要再生的对象。7,运行构建命令。如果Makefile的默认工作方式,找到第一个目标文件,并根据相关性将作为最终文件的目标文件的从属文件丢失或更新,则将重新编译目标文件。如果没有从属文件,make不会自动执行command命令。如果发生错误,make将直接退出,并报告错误、简单的Makefile实例。objects=main . o kbd . o command . o display . o insert . o search . o files . o utils . o edit 3360 defs . hkbd . o : defs. prerequisites.用空格分隔Prereq

3、uisites目标依赖的文件,用空格分隔多个文件,用空格分隔command命令行,以制表符开头,用分号分隔,用于表示Makefile中的引用文件的command command targets档案名称,Include filename档案名称路径属性shell和宣言时必须指定初始值。在变量名称前加上“$”符号。建议使用括号“()”,其中=”、Makefile中的条件语法、条件表达式语法:endif和:elseendif表示条件关键字。牙齿关键字有4个ifeq、ifneq、ifdef和ifndef。允许额外空格,else,endif)比较两个参数的值是否相等,比较两个等于真ifneq(,)的参数

4、的值是否相等,如果真ifdef变量的值不为空,则表达式为真,Makefile中的引用函数,调用语法$()Makefile中的引用函数,调用示例$(subst,)名称:字符串替换函数subst。功能:-替换前的字符串-替换后的字符串-替换后的字符串$(subst ee,ee,feet on the street)最初是feet on the street,以前的命令结果应用于下一个命令命令行之前的字符“”在命令命令行之前的字符“-”中执行命令的错误命令行前面的字符“#”用于注释,Makefile中只有代字号“/test”(表示当前用户的$HOME)和“.”、执行Makefile、操作系统shel

5、l的命令行命令等命令以tab键开头,或紧跟在从属规则后面的分号后按顺序执行“/bin/sh”make(取决于UNIX中的标准shell解释),如果在执行Makefile 1 make时出错,则返回1。使用2 make的“-q”选项返回0,表示要更新的内容,返回2,表示发生了错误。运行Makefile,默认可执行文件GNUMakefile,Makefile,Makefile指定可执行文件make f hchen.mk默认目标Makefile的第一个(组)目标指定目标makefxl00101,makefxl00101如果为0,则更新;如果为2,则出错。-I-运行时忽略所有错误-h-显示帮助文档信息

6、-o-指定生成的档案名称-p-输出Makefile中的所有数据(包括所有规则和变量)。不运行-Makefile p f /dev/null,qp在运行Makefile之前,通过运行字典设置的变量和规则、Makefile执行、Makefile执行参数“debug=”输出make调试信息。有多个茄子级别可供选择,如果没有参数,则输出最简单的调试信息。以下是值:a为all。输出所有调试信息。b是基本。仅输出简单的调试信息。也就是说,输出不需要重新编译的目标。v是b选项级别之上的详细。输出的信息包括确定了哪些Makefile牙齿、无需重新编译的从属档案(或从属目标)等。I是implicit,输出是隐式

7、规则。j是jobs,它输出有关执行规则中命令的详细信息,如命令的PID、返回代码等。m是Makefile,输出make是读取Makefile、更新Makefile和运行Makefile的信息。-d-默认值为d=a,与隐式规则相同。其特点是,默认情况下在Makefile中运行的规则可以使用系统变量自定义显式规则,而不是隐式规则。隐式规则、隐式规则、隐式规则实例foo : foo.o cc o foo foo.o等于foo.o :隐式规则概述、编译C程序的隐式规则。o 的目标的从属目标将自动成为.导出为c 。生成命令编译$ (cc) c $ (cpflags) $ (cflags)编译c程序中的隐

8、式规则编译Pascal程序中的隐式规则Fortran/Ratfor程序中的隐式规则字典处理Fortran/Ratfor程序中的隐式规则程序集和程序集字典处理中的隐式规则链接obj取决于o 。运行c的编译器以运行链接器生成。创建命令为$ (cc) $ (ldflags)。o $ (loags)规则语法目标定义中的“%”规则实例% .o:%。c $(cc)-使用c $ (cflags) $ (cppflags) $-o $% .tab内置隐式规则% .o:%。c $(cc)-c $(CPP flags)$(c flags)-d $(date)既有型式的一对字尾规则双字尾定义字尾:目标档案中的字尾例如,“. c.o”等于“%o : %c”单个后缀定义后缀,即依赖于目标的后缀。例如。c表示% : %。c 自定义后缀类似于目标. suffixes:pco.cob.pc,用户定义的隐式规则,自动变量列表,$表示规则的目标档案集。仅当目标是库文件时,才表示规则的目标成员名称。$依赖于目标的第一个目标名称。$?比目标新的从属目标的所有集合以空格分隔。$所有从属目标的集合(以空格分隔)。如果从属目标有多个冗馀,则牙齿变量将删除重复的从属目标,只保留一个。$牙齿变量类似于$,是所有从属目标的集

温馨提示

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

评论

0/150

提交评论