- #
- # c.cpp混合编译的makefile模板
- #
- #
- BIN = test.exe
- CC = gcc
- CPP = g++
- #这里只加入库头文件路径及库路径
- INCS = -I"c:/mingw/include"
- LIBS = -L"c:/mingw/lib"
- SUBDIRS =
- #生成依赖信息时的搜索目录,比如到下列目录中搜索一个依赖文件(比如.h文件),例如 -I"./***/" -I"./base/"
- DEFINC =
- #给INCS加上依赖搜索路径,分开写可能会产生不一致情况,而且繁琐
- INCS += $(DEFINC)
- #
- #
- #maintest.c tree/rbtree.c 多了子目录,那就直接添加 目录/*.c即可 所有的源文件-- .c文件列表
- CSRCS = $(wildcard ./*.c)
- CPPSRCS = $(wildcard ./*.cpp)
- #SRCS += $(wildcard ./../base/*.c)
- #SRCS += $(wildcard ./*.c ./src/*.c ./src/base/*.c ./src/base/tree/*.c ./src/mem/*.c)
- #
- #
- #所有的.o文件列表
- COBJS := $(CSRCS:.c=.o)
- CPPOBJS := $(CPPSRCS:.cpp=.o)
- #
- #生成依赖信息 -MM是只生成自己的头文件信息,-M 包含了标准库头文件信息。
- #-MT 或 -MQ都可以改变生成的依赖 xxx.o:src/xxx.h 为 src/xxx.o:src/xxx.h 当然。前面的 src/xxx.o需自己指定
- #格式为 -MM 输入.c或.cpp 查找依赖路径 -MT或-MQ 生成规则,比如src/xxx.o
- MAKEDEPEND = gcc -MM -MT
- CFLAGS += $(INCS)
- CFLAGS += -O2 -Wall -fomit-frame-pointer -g -ansi
- CPPFLAGS += $(INCS)
- CPPFLAGS += -O2 -Wall -g
- #-g 生成调试信息
- #-pedantic参数与-ansi一起使用 会自动拒绝编译非ANSI程序
- #-fomit-frame-pointer 去除函数框架
- #-Wmissing-prototypes -Wstrict-prototypes 检查函数原型
- #针对每个.c文件的.d依赖文件列表
- CDEF = $(CSRCS:.c=.d)
- CPPDEF = $(CPPSRCS:.cpp=.d)
- all:$(BIN)
- #生成.o的对自己目录中.h .c的依赖信息.d文件到.c所在的路径中
- #$(DEF)文件是.d文件名列表(含目录),比如tree.d 匹配成功那么%就是tree,然后在尝试%.c,如果成功。则执行规则
- # $(
关注打赏
最近更新
- 深拷贝和浅拷贝的区别(重点)
- 【Vue】走进Vue框架世界
- 【云服务器】项目部署—搭建网站—vue电商后台管理系统
- 【React介绍】 一文带你深入React
- 【React】React组件实例的三大属性之state,props,refs(你学废了吗)
- 【脚手架VueCLI】从零开始,创建一个VUE项目
- 【React】深入理解React组件生命周期----图文详解(含代码)
- 【React】DOM的Diffing算法是什么?以及DOM中key的作用----经典面试题
- 【React】1_使用React脚手架创建项目步骤--------详解(含项目结构说明)
- 【React】2_如何使用react脚手架写一个简单的页面?
立即登录/注册


微信扫码登录