红联Linux门户
Linux帮助
当前位置: 红联Linux门户 > Ubuntu

makefile 规则篇

发布时间:2010-10-23 16:40:05来源:红联作者:708823782
各位好!这makefile参考手册上面的一段话:

一般我们可以使用“$(wildcard *.c)”来获取工作目录下的所有的.c文件列表。复
杂一些用法;可以使用“$(patsubst %.c,%.o,$(wildcard *.c))” ,首先使用“wildcard”
函数获取工作目录下的.c文件列表;之后将列表中所有文件名的后缀.c替换为.o。这样
我们就可以得到在当前目录可生成的.o 文件列表。因此在一个目录下可以使用如下内
容的 Makefile 来将工作目录下的所有的.c 文件进行编译并最后连接成为一个可执行文
件:

#sample Makefile
objects := $(patsubst %.c,%.o,$(wildcard *.c))

foo : $(objects)
cc -o foo $(objects)
这里启不是直接将.c文件替换成.o文件(关键是这里),然后编译成可执行文件foo,但是感觉不对,请高手们讲讲,谢谢!
文章评论

共有 3 条评论

  1. weibiyan 于 2010-11-28 23:45:02发表:

    楼上正解

  2. 708823782 于 2010-10-24 08:59:48发表:

    奈何无人问顶,是不是问题太过于简单了!

  3. 708823782 于 2010-10-23 17:39:37发表:

    [i=s] 本帖最后由 708823782 于 2010-10-23 19:28 编辑 [/i]

    版主和各位大哥帮帮忙呀,急呀~?