一点一点学写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)的形式,这是引用一个变量,在第十五行已有定义


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

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

相关文章推荐

递归解压当前目录以及子目录下的所有压缩文件,并删除源文件

@echo off setlocal enabledelayedexpansion echo 当前批处理路径是: echo "%~dp0" cd /d "%~dp0" for /f "use...
  • gflrlm
  • gflrlm
  • 2013年10月16日 23:43
  • 1510

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

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

CFileDialog自动改变当前目录问题解决方案

今天碰到一个奇怪的问题,代码如下 // “文件对话框”执行前获取程序所在路径 char szFilePath[MAX_PATH]; GetCurrentDirectory(MAX_PATH,...

Mac在Finder直接打开iterm2并且定位到当前目录 ---------类似于git bash here

1.使用添加服务 peterldowns/iterm2-finder-tools 根据github上面的描述照着安装一下,然后在系统偏好设置里面 先下载 $ git...

汇编语言:请写一个程序把当前目录下的TEXT.TXT文件中的字符读出来显示在屏幕上,当遇到结束符时就停止读取。

题目:写一个程序把当前目录下的TEST.TXT文件中的字符内容读出来并显示在屏幕上,当遇到结束符时就停止读取。 我的test.txt中的内容是: 程序的运行结果如下: 我写的源代...
  • abzbi
  • abzbi
  • 2012年09月11日 17:08
  • 7615

头文件和源文件在不同目录情况下 Makefile自动推导依赖关系的实现

参考 跟我一起写Makefile http://bbs.chinaunix.net/forum.php?mod=viewthread&tid=408225&extra=&authorid=106107...
  • shun01
  • shun01
  • 2014年04月04日 16:40
  • 1883

一点一点学写Makefile-1

相信很多Linux开发者 都得自己来写Makefile,刚开始学习学写这个的时候都会碰到很多困难,我之前没有自己独立完成过Makefile,都是在公司已有的模板上添加。现在突然有一个很大的想法就是从零...

Opencv在当前目录下的配置

  • 2015年10月04日 21:31
  • 100KB
  • 下载

一点一点学写Makefile(4) - 编译时指定宏参数

我们在项目中有时为了方便会自定义一些与项目无关的功能,例如打印输出一些提示信息、将关键协议生成文件等,但是如果每次都通过修改代码的方法来实现,测试部门就会认为你改的这些代码可能会带来其他问题。对于这种...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:一点一点学写Makefile(2)-自动搜所当前目录下的所有源文件
举报原因:
原因补充:

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