04.makefile(下)

时间:2015-04-11 17:37:04   收藏:0   阅读:229

◊基本框架:

a)         Make常用内嵌函数

b)         多级目录Makefile的编写

 

4.1Make常用内嵌函数

函数调用的一般形式:$(function  arguments(参数))

  1)        $(wildcard PATTERN) :   匹配当前目录下指定模式的文件

        例子:src=$(wildcard  *.c)

  2)        模式替换函数 

        例子:$(src:.c=.o)

  3)        Shell函数:           执行shell命令

        例子:$(shell  ls  –d  */)

4.2多级目录Makefile的编写

4.2.1多级目录,只生成一个可执行文件的Makefile的编写

  一个比较好的例子(值得参考):

  .PHONY:  all  clean

  CC = gcc

  CFLAGS =  -Wall  –g

  BIN = main

  SUBDIRS = $(shell ls  –d  */)

  SUBSRC = $(shell find $(SUBDIRS)  -name  ‘*.c’)

  SUBOBJ = $(SUBSRC: .c=.o)

  ROOTSRC = $(wildcard *.c)

  ROOTOBJ = $(ROOTSRC:.c=.o)

  OBJS = $(ROOTOBJ)  $(SUBOBJ)

  all:$(BIN)

  $(BIN):$(OBJS)

           $(CC) $(CFLAGS) $^ -o $@

  %.o:%.c

           $(CC) $(CFLAGS) –c $< -o $@

  clean:

           rm –f $(BIN) $(OBJS)

4.2.2 多级目录,生成多个可执行文件的Makefile的编写:

      $(CURDIR) :表示当前文件夹。

      难度较大,先简单了解下。

4.3Makefile编写总结:

  1)一个目录下,一个可执行文件的编写;

  2)一个目录下,多个可执行文件的编写;

  3)多级目录下,一个可执行文件的编写;

  4)多级目录下,多个可执行文件的编写。

  前三种Makefile文件的编写自己应该掌握。

原文:http://www.cnblogs.com/zkw-2014/p/4417959.html

评论(0
© 2014 bubuko.com 版权所有 - 联系我们:wmxa8@hotmail.com
打开技术之扣,分享程序人生!