Linux/Unix环境下的make命令详解
日期:2007年8月11日 作者: 查看:[大字体 中字体 小字体]-
-f file 指定file文件为描述文件,如果file参数为"-"符,那么描述文件指向标准输入。如果没有"-f"参数,则系统将默认当前目录下名为makefile或者名为Makefile的文件为描述文件。在Linux中, GNU make 工具在当前工作目录中按照GNUmakefile、makefile、Makefile的顺序搜索 makefile文件。
-i 忽略命令执行返回的出错信息。
-s 沉默模式,在执行之前不输出相应的命令行信息。
-r 禁止使用build-in规则。
-n 非执行模式,输出所有执行命令,但并不执行。
-t 更新目标文件。
-q make操作将根据目标文件是否已经更新返回"0"或非"0"的状态信息。
-p 输出所有宏定义和目标文件描述。
-d Debug模式,输出有关文件和检测时间的详细信息。Linux下make标志位的常用选项与Unix系统中稍有不同,下面我们只列出了不同部分:
-c dir 在读取 makefile 之前改变到指定的目录dir。
-I dir 当包含其他 makefile文件时,利用该选项指定搜索目录。
-h help文挡,显示所有的make选项。
-w 在处理 makefile 之前和之后,都显示工作目录。通过命令行参数中的target ,可指定make要编译的目标,并且允许同时定义编译多个目标,操作时按照从左向右的顺序依次编译target选项中指定的目标文件。如果命令行中没有指定目标,则系统默认target指向描述文件中第一个目标文件。
通常,makefile 中还定义有 clean 目标,可用来清除编译过程中的中间文件,例如:
clean:
rm -f *.o运行 make clean 时,将执行 rm -f *.o 命令,最终删除所有编译过程中产生的所有中间文件。
隐含规则
在make 工具中包含有一些内置的或隐含的规则,这些规则定义了如何从不同的依赖文件建立特定类型的目标。Unix系统通常支持一种基于文件扩展名即文件名后缀的隐含规则。这种后缀规则定义了如何将一个具有特定文件名后缀的文件(例如.c文件),转换成为具有另一种文件名后缀的文件(例如.o文件):
.c:.o
$(CC) $(CFLAGS) $(CPPFLAGS) -c -o $@ $<
系统中默认的常用文件扩展名及其含义为:
.o 目标文件
.c C源文件
.f FORTRAN源文件
.s 汇编源文件
.y Yacc-C源语法
.l Lex源语法在早期的Unix系统系统中还支持Yacc-C源语法和Lex源语法。在编译过程中,系统会首先在makefile文件中寻找与目标文件相关的.C文件,如果还有与之相依赖的.y和.l文件,则首先将其转换为.c文件后再编译生成相应的.o文件;如果没有与目标相关的.c文件而只有相关的.y文件,则系统将直接编译.y文件。
而GNU make 除了支持后缀规则外还支持另一种类型的隐含规则--模式规则。这种规则更加通用,因为可以利用模式规则定义更加复杂的依赖性规则。模式规则看起来非常类似于正则规则,但在目标名称的前面多了一个 % 号,同时可用来定义目标和依赖文件之间的关系,例如下面的模式规则定义了如何将任意一个 file.c 文件转换为 file.o 文件:
%.c:%.o
$(CC) $(CFLAGS) $(CPPFLAGS) -c -o $@ $<
#EXAMPLE#下面将给出一个较为全面的示例来对makefile文件和make命令的执行进行进一步的说明,其中make命令不仅涉及到了C源文件还包括了Yacc语法。本例选自"Unix Programmer's Manual 7th Edition, Volume 2A" Page 283-284
下面是描述文件的具体内容:
#Description file for the Make command
- 上一页 [1] [2] [3] [4] [5] 下一页
-
- Linux/Unix环境下的make命令详解 相关文章:
- ·破解QQ空间相册密码
- ·路由器安全设置详解
- ·忘记WindowsXP登录密码的解决方案
- ·魔法门7 攻略解析
- ·密码破解简介
- ·巧妙破解Win XP的登录密码简法
- ·我也发个破解(可破解正版中文旗舰版 Windows Vista Ultimate ChnSimp )试用没问题
- ·MSComm控件使用详解
- ·开机提示reboot and select proper boot device or insert boot Media in selected boot device的解决
- ·网络拓扑图--解决方案
- Linux/Unix环境下的make命令详解 相关软件
- ·终极解码 V1.7.0408 简体中文版
- ·2345首页解除器 V1.0
- ·完美解码 2007.1115
- ·多功能密码破解软件 V4.5
- ·加速工具时空游侠V1.5破解版
- ·手机解锁 V8.01
- ·变速精灵XP v1.70破解版
- ·青霜微软媒体播放器RM解码器 V3.0
- ·ZIP/RAR/ACE/ARJ/PDF 解密工具包 V1.0
- ·骑马与砍杀完美解密中文版0808版
- 特别声明:本站除部分特别声明禁止转载的专稿外的其他文章可以自由转载,但请务必注明出处和原始作
- 者.文章版权归文章原始作者所有.对于被本站转载文章的个人和网站,我们表示深深的谢意。如果本站转
- 载的文章有版权问题请联系编辑人员,我们尽快予以更正. 转载请注明来源:http://www.hackhome.com
上一篇:精彩编程人生路(3)
下一篇:精彩人生---店长故事
精品推荐
热点TOP10
- ·什么是MIS
- ·Linux操作系统源代码详细分析
- ·BIOS知识大全
- ·Linux学习手册
- ·Vi命令一览表
- ·linux知识大全
- ·Linux/Unix环境下的make命令详解
- ·LINUX 常见问题1000个详细解答
- ·Linux循序渐进(19):shell
- ·RPM命令大全
- ·Linux中QQ的配置
- ·Linux主要shell命令详解
- ·最新linux iso光盘下载点
- ·Linux发行版图标大全
- ·常见端口表汇总
- ·linux内核编译详解
- ·Linux From Scratch安装学习笔记
- ·万能声卡驱动(Alsa)的安装方法
- ·Linux下用pptp连接VPN服务器
- ·Bourne shell编程入门及脚本测试
特别推荐
- ·BIOS知识大全
- ·如何编写Linux设备驱动程序
- ·Linux管理工具介绍
- ·Linux操作系统源代码详细分析
- ·Linux下用pptp连接VPN服务器
- ·在linux7.1上安装jdk+tomcat+oracle9i笔记
- ·Linux学习手册
- ·学习Linux的八点忠告
- ·深入分析Linux防火墙
- ·UNIX系统后门的安放和日志的擦除
- ·揭开Expect的神秘面纱
- ·万能声卡驱动(Alsa)的安装方法
- ·长篇连载--arm linux演艺---序
- ·为CanonPIXMAiP1000喷墨打印机安装驱动程序
- ·详细讲解Linux系统下ADSL拨号上网方法
- ·使用ImageMagick 的提示与技巧
- ·轻松实现 Linux系统下互联网过滤功能
- ·Linux下一些故障现象以及解决的相关资源
- ·重安装gentoo 2005.1 for AMD64版经验
- ·Linux/Unix环境下的make命令详解
