码迷,mamicode.com
首页 > 其他好文 > 详细

04.makefile(下)

时间:2015-04-11 17:39:21      阅读:117      评论:0      收藏:0      [点我收藏+]

标签:

◊基本框架:

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文件的编写自己应该掌握。

04.makefile(下)

标签:

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

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!