省事之通用Makefile模版

现在编译方案都偏爱使用cmake解决问题,这两条做unity插件,还是用Makefile,居然忘得光光,好记性不如烂笔头。

后面,翻箱倒柜找到以前为炼金术写的Makefiel,发现还真是挺好用,贴出来,当万能Makefile模板挺好的。。

PROJECT_DIR = ..
#PATH:=${ALCHEMY_HOME}/achacks:${PATH}
CC = gcc
AR = ar
CFLAGS := -Wall -W -std=gnu99 -g
LDFLAGS =
INCLUDE_DIR = -I$(PROJECT_DIR)/luajit/src
LIBNAME = libz.a

OBJS = $(patsubst ./%.c, %.o,$(wildcard ./*.c)) 

.PHONY: all clean

.SUFFIXES: .c .o

.c.o:
	$(CC) $(CFLAGS) -c $< $(INCLUDE_DIR)

all: $(LIBNAME)

$(LIBNAME):$(OBJS)
	@$(AR) rcs $(LIBNAME) $(OBJS)
	ranlib $(LIBNAME)

clean:
	@rm -rf $(LIBNAME) $(OBJS)
  • 修改LIBNAME为你想要库名
  • 在源码目录文件名为Makefile
  • 只实现make 和make clean
  • 如果c++的自己实现一下自动推导规则,看着也简单

另外,也改善一下对MinGW的印象,其实也挺好用的,不一定要用cmake生成vc解决方案,既然喜欢linux,为什么不能接受mingw呢?

时间: 2024-10-19 12:47:37

省事之通用Makefile模版的相关文章

一个通用的c/c++Makefile模版

一个codeproject上发现的通用c/c++的Makefile模版,比较简单好用,共享之 ############################################################################# # # Generic Makefile for C/C++ Program # # License: GPL (General Public License) # Author: whyglinux <whyglinux AT gmail DOT

一个通用Makefile的编写

作者:杨老师,华清远见嵌入式学院讲师. 我们在Linux环境下开发程序,少不了要自己编写Makefile,一个稍微大一些的工程下面都会包含很多.c的源文件.如果我们用gcc去一个一个编译每一个源文件的话,效率会低很多,但是如果我们可以写一个Makefile,那么只需要执行一个make就OK了,这样大大提高了开发效率.但是Makefile的语法规则众多,而且缺乏参考资料,对于初学者来说,写起来还是有一定的难度,往往令很多人望而生畏.下面我们介绍一个比较通用而且简洁的Makefile,大家只要对它稍

通用Makefile

本文推荐了一个用于对 C/C++ 程序进行编译和连接以产生可执行程序的通用 Makefile. 在使用 Makefile 之前,只需对它进行一些简单的设置即可:而且一经设置,即使以后对源程序文件有所增减一般也不再需要改动 Makefile.因此,即便是一个没有学习过 Makefile 书写规则的人,也可以为自己的 C/C++ 程序快速建立一个可工作的 Makefile. 这个 Makefile 可以在 GNU Make 和 GCC 编译器下正常工作.但是不能保证对于其它版本的 Make 和编译器

一个简单的通用Makefile实现

Makefile是Linux下程序开发的自动化编译工具,一个好的Makefile应该准确的识别编译目标与源文件的依赖关系,并且有着高效的编译效率,即每次重新make时只需要处理那些修改过的文件即可.Makefile拥有很多复杂的功能,这里不可能也没必要一一介绍,为了简化问题的复杂性,本文仅和大家讨论针对单目录下的C/C++项目开发,如何写一个通用的Makefile. 首先,我们假设当前工程目录为prj/,该目录下有6个文件,分别是:main.c.abc.c.xyz.c.abc.h.xyz.h和M

一个通用Makefile详解

我们在Linux环境下开发程序,少不了要自己编写Makefile,一个稍微大一些的工程下面都会包含很多.c的源文 件. 如果我们用gcc去一个一个编译每一个源文件的话,效率会低很多,但是如果我们可以写一个Makefile,那么只需要执行一个make就OK了,这 样大大提高了开发效率. 但是Makefile的语法规则众多,而且缺乏参考资料,对于初学者来说,写起来还是有一定的难度,往往令很多人望而生畏. 下面我 们介绍一个比较通用而且简洁的Makefile,大家只要对它稍作修改就可以用在你们自己的工

Linux下C++的通用Makefile与解析

本文给出万能Makefile的具体实现,以及对其中的关键点进行解析.所谓C++万能Makefile,即可编译链接所有的C++程序,而只需作很少的修改. 号称万能Makefile,一统江湖.我对原版的Makefile做了些修改.首先揭开它的庐山真面目: #################################################### # Generic makefile - 万能Makefile # for compiling and linking C++ project

通用 Makefile(及makefile中的notdir,wildcard和patsubst)

notdir,wildcard和patsubst是makefile中几个有用的函数,以前没留意过makefile中函数的用法,今天稍微看看~ 1.makefile里的函数 makefile里的函数使用,和取变量的值类似,是以一个'$'开始,然后是一个括号里面是函数名和需要的参数列表,多个变量用逗号隔开,像这样 return = $(functionname  arg1,arg2,arg3...). 可能这里的'$'更像是从某个地址取值类似的操作. 2. wildcard 使用:SRC = $(w

C++之通用队列模版

功能:在qtcreator上用模版的方式实现队列数据格式存储多样化. 模版实现的两种方式: 1.模版的实现直接在头文件里声明并定义,别的类通过#include"*.h"进行包含,则可以实现调用该类并实例化. 2.可以在cpp文件里直接定义模版的具体功能,别的类需要调用该类时,只能通过#include"*.cpp"文件, 如果以#include "*.h"方式,则会出错. #ifndef TEMPLATERQUEUE_H #define TEMPL

向大家推荐一个C/C++通用Makefile

在使用 Makefile 之前,只需对它进行一些简单的设置即可:而且一经设置,即使以后对源程序文件有所增减一般也不再需要改动 Makefile.因此,即便是一个没有学习过 Makefile 书写规则的人,也可以为自己的 C/C++ 程序快速建立一个可工作的 Makefile. 这个 Makefile 可以在 GNU Make 和 GCC 编译器下正常工作.但是不能保证对于其它版本的 Make 和编译器也能正常工作. 此 Makefile 的使用方法如下: 程序目录的组织  尽量将自己的源程序集中