您当前的位置: 首页 > 

phymat.nico

暂无认证

  • 1浏览

    0关注

    1967博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

makefile多目录的.c 格式.cpp混合编译

phymat.nico 发布时间:2017-12-05 16:05:29 ,浏览量:1

原文地址:http://blog.csdn.net/yangbingzhou/article/details/50218315

[cpp] view plain copy print ?
  1. #  
  2. # c.cpp混合编译的makefile模板  
  3. #  
  4. #  
  5.   
  6.   
  7. BIN = test.exe  
  8. CC = gcc  
  9. CPP = g++  
  10. #这里只加入库头文件路径及库路径  
  11. INCS = -I"c:/mingw/include"  
  12. LIBS = -L"c:/mingw/lib"  
  13. SUBDIRS =  
  14. #生成依赖信息时的搜索目录,比如到下列目录中搜索一个依赖文件(比如.h文件),例如 -I"./***/" -I"./base/"  
  15. DEFINC =  
  16. #给INCS加上依赖搜索路径,分开写可能会产生不一致情况,而且繁琐  
  17. INCS += $(DEFINC)  
  18. #  
  19. #  
  20. #maintest.c tree/rbtree.c  多了子目录,那就直接添加 目录/*.c即可   所有的源文件--  .c文件列表  
  21. CSRCS = $(wildcard ./*.c)  
  22. CPPSRCS = $(wildcard ./*.cpp)  
  23. #SRCS += $(wildcard ./../base/*.c)  
  24. #SRCS += $(wildcard ./*.c ./src/*.c ./src/base/*.c ./src/base/tree/*.c ./src/mem/*.c)  
  25.   
  26. #  
  27. #  
  28. #所有的.o文件列表  
  29. COBJS := $(CSRCS:.c=.o)  
  30. CPPOBJS := $(CPPSRCS:.cpp=.o)  
  31. #  
  32. #生成依赖信息 -MM是只生成自己的头文件信息,-M 包含了标准库头文件信息。  
  33. #-MT 或 -MQ都可以改变生成的依赖  xxx.o:src/xxx.h 为 src/xxx.o:src/xxx.h 当然。前面的 src/xxx.o需自己指定  
  34. #格式为 -MM 输入.c或.cpp  查找依赖路径  -MT或-MQ  生成规则,比如src/xxx.o  
  35. MAKEDEPEND = gcc -MM -MT  
  36. CFLAGS += $(INCS)  
  37. CFLAGS += -O2 -Wall -fomit-frame-pointer -g -ansi  
  38. CPPFLAGS += $(INCS)  
  39. CPPFLAGS += -O2 -Wall -g  
  40. #-g 生成调试信息  
  41. #-pedantic参数与-ansi一起使用 会自动拒绝编译非ANSI程序  
  42. #-fomit-frame-pointer 去除函数框架  
  43. #-Wmissing-prototypes -Wstrict-prototypes 检查函数原型  
  44. #针对每个.c文件的.d依赖文件列表  
  45. CDEF = $(CSRCS:.c=.d)  
  46. CPPDEF = $(CPPSRCS:.cpp=.d)  
  47.   
  48. all:$(BIN)  
  49.   
  50. #生成.o的对自己目录中.h .c的依赖信息.d文件到.c所在的路径中  
  51. #$(DEF)文件是.d文件名列表(含目录),比如tree.d 匹配成功那么%就是tree,然后在尝试%.c,如果成功。则执行规则  
  52. # $(
关注
打赏
1659628745
查看更多评论
立即登录/注册

微信扫码登录

0.0519s