`
li-yuan
  • 浏览: 68411 次
  • 性别: Icon_minigender_1
  • 来自: 成都
社区版块
存档分类
最新评论

一个简单而实用的make文件

阅读更多

原来一直都是手工为项目维护一个make文件,特别是文件越来越来多的时候,维护make文件就成了一个很大的负担,其实GNU Make还提供了一个函数$(wildcard (wildcard )可以生成源程序文件列表。

PROJECT=ptest
LIBS=-lpthread
SOURCE=$(wildcard ./src/*/*.c) $(wildcard ./src/*.c)
OBJS=$(patsubst %.c,%.o,$(SOURCE))
CFLAGS=-g -Wall -O
CC=gcc
vpath %.h ./src/head
vpath %.c ./src
vpath %.c ./src/*
$(PROJECT):$(OBJS)
        $(CC) $(CFLAGS) $(LIBS) $(OBJS) -o $@
.PHONY:clean
clean:
        $(RM) ptest $(OBJS)
分享到:
评论

相关推荐

    Android安卓手机查看MD(makedown)文件阅读器应用APP

    一款纯粹阅读功能的Android安卓手机查看MD(makedown)文件阅读器应用APP,支持直接浏览查看MD(makedown)文件,支持浏览手机文件夹里面的MD文件,简单实用的MD文件阅读APP

    万能makefile写法详解,一步一步写一个实用的makefile

    这里指示了main.o目标依赖于哪几个源文件,我们只要把这一行的内容,通过make的include指令包含到makefile文件里,即可在其任意一个依赖文件被修改后,重新编译目标main.o。 下面详解如何生成这个.d文件。 (二) ...

    GNU make中文手册

    GNU make是一个自动化构建工具,常用于管理软件项目的编译和构建过程,尤其是在Linux环境中。通过编写Makefile,程序员可以定义规则来指定如何从源代码生成可执行文件或其他输出。 在本书中,作者不仅翻译了原始的...

    make_ext4fs.rar

    "simg2img.exe"则是一个实用的工具,可以将SIMG文件转换为更常见的RAW或IMG格式,便于用常规的磁盘映像处理工具进行操作。 1. 转换过程: - 将需要转换的SIMG文件拖入simg2img.exe,程序会自动生成一个与SIMG文件...

    Greenjvm_make 精简JRE

    总的来说,"Greenjvm_make"是一个实用的工具,通过自定义JRE,可以帮助开发者减小应用的体积,加快启动速度,节省系统资源。在部署和运行Java应用程序时,特别是对于那些对性能和资源有严格要求的场景,"Greenjvm_...

    三本关于如何使用make的书籍

    另一本中文手册"chinesegnumake-v3.80.pdf"则是`GNU Make`的中文版参考文档,对于初学者而言,这是一份非常实用的资料。它详细阐述了`GNU Make`的各个功能和选项,包括每个内置函数的用法,以及如何调试和优化...

    Node.js-make-dir创建一个目录及可能需要的父目录-类似于`mkdir-p`命令

    `make-dir`模块提供了相同的便利性,为Node.js开发者在处理文件系统操作时提供了一个可靠的工具。 Node.js是JavaScript的服务器端运行环境,它扩展了JavaScript的应用范围,使其能够处理服务器端的任务,如文件系统...

    GNU make 使用手册.pdf

    在本手册中,首先介绍了Makefile文件的构成,包括规则的格式、一个简单的Makefile文件示例、make处理Makefile文件的过程、使用变量简化Makefile文件的编写等。Makefile文件是Make命令的核心,包含了需要编译的目标...

    D Parser 之前:写一个简单的虚拟机

    1. `add.bin`:可能是一个二进制文件,包含了一些预编译的字节码指令,可能是用来测试ZVM功能的一个简单加法运算程序。 2. `Language and VM.c`:这个文件可能是C语言编写的,可能包含了虚拟机的部分实现,或者是一...

    up_make.rar_ST7656_make up

    标题“up_make.rar_ST7656_make up”暗示了我们正在处理一个与ST7656液晶显示屏(LCD)相关的项目,其中包含了用于制作或更新显示内容的工具。描述指出,该工具能够处理TXT文件中的字库,并通过VC++(Visual C++)...

    中文版GNU make

    - **重载另外一个makefile**:说明如何在make进程中加载新的Makefile文件,以更新构建规则。 - **make如何解析makefile文件**: - **变量取值**:解释make如何获取变量的值。 - **条件语句**:介绍Makefile中条件...

    GNU Make 使用手册(中译版)

    Makefile文件中的规则定义了如何构建一个目标文件,包括目标、依赖项和命令行: ``` prog: main.o util.o gcc -o prog main.o util.o ``` **3.5 Makefile文件的重载** Make允许在构建过程中重载Makefile文件,...

    一个简单的makefie

    `%.o: %.c`定义了一个模式规则,表示对于任何`.c`文件,`make`都会使用`gcc`进行编译,并生成相应的`.o`目标文件。`main.o`是`test`的依赖,当`main.c`被修改后,`make`会重新编译`main.o`,然后链接生成`test`。 `...

    Laravel开发-laravel-make-user

    总的来说,`laravel-make-user`是Laravel开发中的一个实用工具,它可以提高开发者效率,减少手动创建用户的工作。通过深入理解这个命令的实现,开发者可以学习到Laravel Artisan命令的创建、数据库交互、用户验证...

    filewatcher:适用于macOS的简单审核实用程序

    一个适用于macOS的简单审核实用程序 Filewatcher是用于macOS的审核和监视实用程序。 它可以审核macOS的系统审核管道中的所有事件,并按进程或文件过滤它们。 您可以使用该实用程序执行以下操作: 监视对一个文件或...

Global site tag (gtag.js) - Google Analytics