一点一点学写Makefile(2)-自动搜所当前目录下的所有源文件

原创 2016年06月01日 20:26:46

上个博客我们使用的是笨方法添加源文件,本次我要实现的是遍历文件夹来获得所有的cpp文件


//makefile


CROSS = 
CC = $(CROSS)gcc
CXX = $(CROSS)g++
DEBUG = -g -O2
CFLAGS = $(DEBUG) -Wall -c
RM = rm -rf

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

VERSION = 1.0.0.0
TARGET = test.$(VERSION)

$(TARGET) : $(OBJS)
	$(CXX) $^ -o $@

$(OBJS):%.o : %.cpp
	$(CXX) $(CFLAGS) $< -o $@


clean:
	$(RM) $(TARGET) *.o




第十一行功能:自动搜索指定目录下的所有cpp文件,如果没有指定,默认是当前目录,指定方法 - SRCS = $(wildcard ./src/*.cpp)

第十二行功能:通过cpp文件获得与之同名的*.o类型的文件

第二十行功能:将*.o文件和*.cpp文件想对应起来(这里会默认看成一个循环,即一个*.o和一个*.cpp文件均对应,直到所有的cpp文件和*.o文件都编译完成)

第二十四行,因为生成的目标文件包含版本信息,因此文件名不确定,建议使用$(TARGET)的形式,这是引用一个变量,在第十五行已有定义


下一节,我将会给大家讲,如何添加第三方库和第三方库所使用的头文件

版权声明:本文为博主原创文章,自己总结难免有出错或是不周全的地方,望指出......

一点一点学写Makefile(6)-遍历当前目录源文件及其子目录下源文件

有时候,我们在开发的时候需要将本次工程的代码分成多个子目录来编写,但是在Makefile的编写上却是个问题,下面我就教大家怎么构建带有子文件夹的源代码目录的自动扫描编译 下面这张图是我的文件树 这...
  • qq849635649
  • qq849635649
  • 2016年10月26日 15:49
  • 537

makefile 获取当前目录下.c .cpp .so文件

#根据当前目录添加自己的库 #获取所有.so文件全路径 ALL_LIBS = ${wildcard ppserver/obj/lib/*.so} #去除前边拉路径,只剩下文件名 FILE_LIBS =...
  • liuzhuchen
  • liuzhuchen
  • 2016年06月28日 16:05
  • 1270

一个简单的makefile的实现,编译当前目录下所有的.c文件

##################################################################### ## file : test makefil...
  • jernymy
  • jernymy
  • 2011年05月06日 23:30
  • 9884

一个能自动搜索源文件并自动推导的Makefile

今天看了一天的makefile的写法,东拼西凑,好不容易写出了一个makefile,颇有成就感,记录下来,以备温习之用。  假设有两个头文件目录 header1,header2;两个cpp文件目录,...
  • nyist327
  • nyist327
  • 2015年03月16日 20:47
  • 1161

两个简单的makefile的实现,编译当前目录下所有的.c文件

在网上找到的一个非常好的makefile文件,可以编译本文件夹下的所有.c文件,之需要定义输出文件名,不需要指定main文件的文件名,非常的好,非常的方便,注释也很详细,收藏并分享给需要的人。 ###...
  • andylauren
  • andylauren
  • 2016年11月18日 22:02
  • 1995

Makefile自动编译目录下的所有.C文件

自动编译目录下的所有.C文件的Makefile脚本CC=gcc CFLAGS_WARN = -Wall DEFINE = INCLUDE = -I. SOURCES = $(wildcard *...
  • fang437385323
  • fang437385323
  • 2016年06月01日 17:56
  • 372

一份通用makefile,自动遍历子目录源文件,自动生成依赖。

这份makefile使用到了shell,所以只支持Unix like系统. 可以将当前makefile所在文件夹以及所有子文件夹中的cpp文件打包成一个静态库. 稍作修改目标也可以用来编译为可执行文件...
  • yuliying
  • yuliying
  • 2015年11月04日 11:42
  • 2851

makefile SRC_FILES 添加多个文件

Android.mk LOCAL_SRC_FILES添加多个文件 MYSRC_ROOT := $(LOCAL_PATH)/../../Classes FILE_LIST := $(wildc...
  • jypeitao
  • jypeitao
  • 2014年03月05日 17:49
  • 695

makefile详解 自动推导 五

GNU的make很强大,它可以自动推导文件以及文件依赖关系后面的命令,于是我们就没必要去在每一个[.o]文件后都写上类似的命令,因为,我们的make会自动识别,并自己推导命令。 只要make...
  • tronteng
  • tronteng
  • 2012年07月31日 18:46
  • 339

Linux学习5之shell显示当前目录下所有的文件和文件夹

hadoop@Mcnode4:~/cloud/adam/xubo/data/test20160310/bwa3sh/test142234$ cat showFileAndDirectory.sh #...
  • bob601450868
  • bob601450868
  • 2016年03月15日 20:27
  • 1295
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:一点一点学写Makefile(2)-自动搜所当前目录下的所有源文件
举报原因:
原因补充:

(最多只允许输入30个字)