zoukankan      html  css  js  c++  java
  • 04.makefile(下)

    ◊基本框架:

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

  • 相关阅读:
    【Linux&amp;Unix--open/close/write/read系统调用】
    瑞丽的SQL-SQL Server的表旋转(行列转换)
    oracle查询和编写数据字典
    [Python]How to handle the exception in Python?
    【Android 应用开发】 FastJson 使用具体解释
    OpenStack Dashboard
    Java Drp项目实战——Drp知多少
    腾讯下一个重点:硬件;硬件自身的未来也正进入多元化发展
    一个简单的带缓存http代理
    Swift语言教程中文文档
  • 原文地址:https://www.cnblogs.com/zkw-2014/p/4417959.html
Copyright © 2011-2022 走看看