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

  1. //makefile
  2. CROSS =
  3. CC = $(CROSS)gcc
  4. CXX = $(CROSS)g++
  5. DEBUG = -g -O2
  6. CFLAGS = $(DEBUG) -Wall -c
  7. RM = rm -rf
  8. SRCS = $(wildcard ./*.cpp)
  9. OBJS = $(patsubst %.cpp, %.o, $(SRCS))
  10. VERSION = 1.0.0.0
  11. TARGET = test.$(VERSION)
  12. $(TARGET) : $(OBJS)
  13. $(CXX) $^ -o $@
  14. $(OBJS):%.o : %.cpp
  15. $(CXX) $(CFLAGS) $< -o $@
  16. clean:
  17. $(RM) $(TARGET) *.o

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

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

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

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

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

最新文章

  1. VS2015中SharedProject与可移植类库(PCL)项目
  2. freeradius + oracle 无限认证
  3. 关于String的equals问题和StringBuilder问题
  4. 文本XSS攻击过滤
  5. Android 环境配置
  6. CSS display 属性
  7. 9-this
  8. Android随笔--使用ViewPager实现简单地图片的左右滑动切换
  9. Nodejs开发指南-笔记
  10. java.lang.NumberFormatException: For input string:&quot;filesId&quot;
  11. 一晚上将一个模板整合进了DJANGO
  12. JDBC、Hibernate、Java类型对照表
  13. Socket 基础解析使用ServerSocket建立聊天服务器
  14. android自定义控件,其三个父类构造方法有什么区别
  15. python解析XML之ElementTree
  16. Struts+Spring+Hibernate项目整合AJAX+JSON
  17. PHP内写css样式
  18. 接收JSON类型转成对象
  19. php开启fileinfo扩展
  20. .net 中写 psql 匿名函数、过程语言

热门文章

  1. 微信获取用户信息的两个接口和两个ACCESS_TOKEN
  2. 克隆kvm虚拟机报错ImportError: No module named &#39;requests.packages.urllib3&#39;
  3. C#接收emoji表情存到sqlserver数据库
  4. .net: 泛型List&lt;T&gt; 轉換成 DataTable類型
  5. 行业UI设计师总结UI设计8个趋势
  6. oracle 笔记---(七)__角色
  7. ionic 开发当中,有一些常用的方法。
  8. 使用urllib和http.cookiejar获取python老男孩学员成绩
  9. nodejs初探(一)nodejs开发环境搭建
  10. android 学习资源网址