第六节 MAKEFILE的常用命令
2015-07-01 17:04
239 查看
1.makefile 文件书写规则
1.基本规则
命令格式如下:
目标:依赖
<tab>命令
如果某一行过长时,可以使用反斜杠“\”将其划分为两行或多行。
以“#”符号开始的行为注释行,如果在一个注释行在行尾为“\”,则表示下一行继续为注释行。
2.变量的定义
定义文本字符串,使用时用“$”符号加括号的形式。
3.隐含规则
1.修改隐含规则中的宏
2.直接修改隐含规则
4.伪目标
5.函数
1.patsubst函数
该函数主要用于字符串的替换与分析,格式如下:
$(patsubst pattern,replacement,text)
具体过程为:在text中查找pattern,然后使用replacement来替换。
2.dir函数
获取文件的路径,格式如下:
$(dir filename...)
3.notdir函数
抽取文件名中除路径部分外一切字符,即真正的文件名,格式::
$(notdir filename...)
4.suffix函数
获取文件名的后缀,格式如下:
$(suffix filename...)
6.通用makefile文件
2.GNU Automake简介
1.创建目录并编辑源文件
2.生成并编辑configure.in文件
执行autoscan命令,会生成.scan文件,改名为configure.in文件
3.生成aclocal.m4和configure文件
执行下面两个命令
aclocal
autoconf
4.生成config.h.in文件
autoheader
5.创建makefile.am文件
创建一个名为Makefile.am的文件,并输入以下内容
AUTOMAKE_OPTIONS=foreign
bin_PROGRAMS=hello
hello_SOURCES=hello.c
6.生成Makefile.in文件
执行如下命令
automake --add-missing
7.生成Makefile
执行configure脚本生成Makefile文件
1.基本规则
命令格式如下:
目标:依赖
<tab>命令
如果某一行过长时,可以使用反斜杠“\”将其划分为两行或多行。
以“#”符号开始的行为注释行,如果在一个注释行在行尾为“\”,则表示下一行继续为注释行。
2.变量的定义
定义文本字符串,使用时用“$”符号加括号的形式。
3.隐含规则
1.修改隐含规则中的宏
2.直接修改隐含规则
4.伪目标
5.函数
1.patsubst函数
该函数主要用于字符串的替换与分析,格式如下:
$(patsubst pattern,replacement,text)
具体过程为:在text中查找pattern,然后使用replacement来替换。
2.dir函数
获取文件的路径,格式如下:
$(dir filename...)
3.notdir函数
抽取文件名中除路径部分外一切字符,即真正的文件名,格式::
$(notdir filename...)
4.suffix函数
获取文件名的后缀,格式如下:
$(suffix filename...)
6.通用makefile文件
2.GNU Automake简介
1.创建目录并编辑源文件
2.生成并编辑configure.in文件
执行autoscan命令,会生成.scan文件,改名为configure.in文件
3.生成aclocal.m4和configure文件
执行下面两个命令
aclocal
autoconf
4.生成config.h.in文件
autoheader
5.创建makefile.am文件
创建一个名为Makefile.am的文件,并输入以下内容
AUTOMAKE_OPTIONS=foreign
bin_PROGRAMS=hello
hello_SOURCES=hello.c
6.生成Makefile.in文件
执行如下命令
automake --add-missing
7.生成Makefile
执行configure脚本生成Makefile文件
相关文章推荐
- oracle alter table
- mysql行转列(拆分字符串场景)
- 修改Oracle XE Listener 占用的1521、8080端口
- MQTT的学习研究(四)moquette-mqtt 的使用之mqtt Blocking API客户端订阅并接收主题信息
- REXT: 路由器攻击工具集
- linux 下 格式化 sd卡为ext4
- .net 高频面试题
- iOS的手势
- vs2010 mfc添加一个管理员登录界面,登录成功显示主界面
- open vSwitch学习资料整理
- java监听器示例
- mysql密码为空,给设置密码
- Struts2+Spring+Hibernate搭建全解!
- 测试用例评审
- PageObject模式
- (转)堆heap和栈stack
- Server Job: error: String or binary data would be truncated. The statement has been terminated.
- 微信开发 笔记2
- MQTT的学习研究(三)moquette-mqtt 的使用之mqtt服务发布主题信息
- java.util.concurrent并发包诸类概览