LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 1089|回复: 4

Makefile里边的这个定义是什么意思?

[复制链接]
发表于 2005-4-29 22:20:35 | 显示全部楼层 |阅读模式
COBJS=bbs.o record.o delete.o main.o
CFILE=$(COBJS:.o=.c)

第二行是什么语法?是什么意思?

多谢!
发表于 2005-4-30 01:52:48 | 显示全部楼层
把COBJS中的文件名中的.o,用.c替换之后的结果
回复 支持 反对

使用道具 举报

 楼主| 发表于 2005-4-30 18:32:48 | 显示全部楼层
给一下语法上的分析好吗?
回复 支持 反对

使用道具 举报

发表于 2005-6-21 17:13:14 | 显示全部楼层
替换变量中的共有的部分,其格式是“$(var:a=b)”或是“${var:a=b}”,其意思是,把变量“var”中所有以“a”字串“结尾”的字符串中的“a”子串替换成“b”子串。这里的“结尾”意思是其后是“空格”或是“结束符”。
回复 支持 反对

使用道具 举报

发表于 2005-6-26 14:29:01 | 显示全部楼层
Post by macarthor
COBJS=bbs.o record.o delete.o main.o
CFILE=$(COBJS:.o=.c)

第二行是什么语法?是什么意思?

多谢!

呵呵,COBJS=bbs.o record.o delete.o main.o是个宏定义,呵呵,碰上COBJS 就可以采用bbs.o record.o delete.o main.o 代替,.0= .c代表是将目标文件中的后缀名由.O变成.C文件,所以最后得到的结果就是CFILE = bbs.c record.c delete.c main.c
呵呵,不知道这么说你明白不?如果不明白建议去找一些书来看
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表