来源: ChinaUnix博客  

一个多目录结构的C程序Makefile,代码存在main init input output exit目录。

CC = gcc

RDIR = Rels
MAIN_DIR = main/Rels
INIT_DIR = init/Rels
INPUT_DIR = input/Rels
OUTPUT_DIR = output/Rels
EXIT_DIR = exit/Rels

OBJ_FILES = $(MAIN_DIR)/main.o
$(INIT_DIR)/init1.o $(INIT_DIR)/init2.o $(INIT_DIR)/init3.o $(INIT_DIR)/init4.o
$(INPUT_DIR)/input1.o $(INPUT_DIR)/input2.o $(INPUT_DIR)/input3.o $(INPUT_DIR)/input4.o
$(OUTPUT_DIR)/output1.o $(OUTPUT_DIR)/output2.o $(OUTPUT_DIR)/output3.o $(OUTPUT_DIR)/output4.o
$(EXIT_DIR)/exit1.o $(EXIT_DIR)/exit2.o $(EXIT_DIR)/exit3.o $(EXIT_DIR)/exit4.o

#build dest
$(RDIR)/dest : $(RDIR) $(MAIN_DIR) $(INIT_DIR) $(INPUT_DIR) $(OUTPUT_DIR) $(EXIT_DIR) $(OBJ_FILES)
$(CC) $(OBJ_FILES) -o $@

# make directry
$(MAIN_DIR):
mkdir $(MAIN_DIR)

$(RDIR):
mkdir $(RDIR)

$(INIT_DIR):
mkdir $(INIT_DIR)

$(INPUT_DIR):
mkdir $(INPUT_DIR)
$(OUTPUT_DIR):
mkdir $(OUTPUT_DIR)
$(EXIT_DIR):
mkdir $(EXIT_DIR)

#compile object
$(MAIN_DIR)/main.o :main/main.c
$(CC) -c $

#clean all
clean:
rm -r -f $(RDIR)
rm -r -f $(INIT_DIR)
rm -r -f $(INPUT_DIR)
rm -r -f $(OUTPUT_DIR)
rm -r -f $(EXIT_DIR)

本文来自ChinaUnix

转:一个多目录结构C程序的Makefile的更多相关文章

  1. Android开发第一讲之目录结构和程序的执行流程

    1.如何在eclipse当中,修改字体 下面的这种办法,可以更改xml的字体 窗口--首选项--常规--外观--颜色和字体--基本--文本字体--编辑Window --> Preferences ...

  2. 如何使用Shell写一个显示目录结构的命令?

    公众号关注 「开源Linux」 回复「学习」,有我为您特别筛选的学习资料~ 在Linux中使用Shell写一个显示目录结构的命令,快速寻找目录结构. 1.代码 #!/usr/bin/env bash ...

  3. iOS 创建一个App目录结构

    Class:存放的是App中所有的模块功能 Base:存放一些基类,比如BaseViewController,BaseModel等,共性直接在基类中去修改 Vendor:三方,因为我的项目中使用coc ...

  4. 微信小程序学习笔记(2)--------框架之目录结构

    框架提供了自己的视图层描述语言 wxml 和 WXSS,以及基于 JavaScript 的逻辑层框架,并在视图层与逻辑层间提供了数据传输和事件系统. 一.响应的数据绑定 框架的核心是一个响应的数据绑定 ...

  5. 微信小程序---目录结构

    (1)目录结构 小程序包含一个描述整体程序的 app 和多个描述各自页面的 page.一个小程序主体部分由三个文件组成,必须放在项目的根目录,如下: (2)允许上传的文件 .

  6. eclipse下maven项目保持原有目录结构配置resin运行环境

    maven项目用起来很方便,但是它的目录结构和eclipse的目录结构是有区别的,故而在eclipse下的maven项目,直接运行调试是有一些问题的. 为了方便maven项目的运行调试,因而也就有了像 ...

  7. Nginx 目录结构、Nginx服务控制命令

    # Nginx目录结构 # 首先推荐一个查看目录结构的工具 tree # yum install -y tree # sudo apt-get install -y tree ubuntu # 查看n ...

  8. Eclipse中一个Maven工程的目录结构

    在之前的javaSE开发中,没有很关注Eclipse工程目录下的环境,总是看见一个src就点进去新建一个包再写一个class.以后的日子中也没有机会注意到一个工程到底是怎么组织的这种问题,跟不要说自己 ...

  9. 每天一个linux命令(23):Linux 目录结构

    对于每一个Linux学习者来说,了解Linux文件系统的目录结构,是学好Linux的至关重要的一步.,深入了解linux文件目录结构的标准和每个目录的详细功能,对于我们用好linux系统只管重要,下面 ...

随机推荐

  1. 编码策略:在ios编码中一定要少写全局变量。

    ios中全局变量默认是灰绿色的,只有少些全局变量,才能提高代码的聚合程度.才能更容易管理代码.

  2. 【微信小程序】在微信开发工具上七牛云的图片可以看到,但是在真机上看不到的原因解决

    在开发微信小程序过程中,在微信开发者工具上,七牛云的图片都可以展示出来,但是在真机上,七牛云的图片却展示不出来,也没有报404找不到或者不能加载图片的问题, 必须保证: 1.图片是用image加载的: ...

  3. VS2010 打包生成exe文件后 执行安装文件出现 TODO:<文件说明>已停止工作并已关闭

    一.VS2010 打包生成exe文件后  执行安装文件出现  TODO:<文件说明>已停止工作并已关闭 TODO: <文件说明>已停止工作 原因: 打包的时候在文件系统中建立了 ...

  4. linux下通过iptables只允许指定ip地址访问指定端口的设置方法

    这篇文章主要介绍了linux下通过iptables只允许指定ip地址访问指定端口的设置方法,需要的朋友可以参考下. 首先,清除所有预设置 iptables -F#清除预设表filter中的所有规则链的 ...

  5. 字符函数PATINDEX()与STUFF()

    函数 PATINDEX() STUFF() 取数字 英语 汉字 更多:http://msdn.microsoft.com/zh-cn/library/ms188395.aspx PATINDEX() ...

  6. [Android Pro] Swift 3.0多线程

    本文只介绍Grand Central Dispath(GCD) 中央调度 个人认为一个GCD就够用了,可能是改版或是其他的在找之前写的多线程方法时发现不能用了,看文档之后发现改了,现在看上去更加简单易 ...

  7. 非常优秀的iphone学习文章总结!

    This site contains a ton of fun tutorials – so many that they were becoming hard to find! So I put t ...

  8. BEGINNING SHAREPOINT&#174; 2013 DEVELOPMENT 第14章节--使用Office Services开发应用程序 总结

    BEGINNING SHAREPOINT® 2013 DEVELOPMENT 第14章节--使用Office Services开发应用程序  总结         SP2013新的server端Off ...

  9. C++11中万能的可调用类型声明std::function<...>

    在C++11中,callable object 包括传统C函数,C++成员函数,函数对象(实现了()运算符的类的实例),lambda表达式(特殊函数对象)共4种.程序设计,特别是程序库设计时,经常需要 ...

  10. Android之批量加载图片OOM问题解决方案

    一.OOM问题出现的场景和原因 一个好的app总少不了精美的图片,所以Android开发中图片的加载总是避免不了的,而在加载图片过程中,如果处理不当则会出现OOM的问题.那么如何彻底解决这个问题呢?本 ...