当前位置:  技术问答>linux和unix

求助Makefile的写法:如何为每一个.c文件自动生成其包含的.h文件集合? 内详

    来源: 互联网  发布时间:2016-07-20

    本文导语:  我的这个Makefile有缺陷,当改动了.h文件的内容时,相关的.c文件不被重新编译 :(      26 # exec file and dest dir to copy to.      27 EXEC = terminal.mips      28 PREFIX := /nfs      29       30       31 # ge...

我的这个Makefile有缺陷,当改动了.h文件的内容时,相关的.c文件不被重新编译 :(


     26 # exec file and dest dir to copy to.
     27 EXEC = terminal.mips
     28 PREFIX := /nfs
     29 
     30 
     31 # get source and include files
     32 CPP_SRC = $(shell find . -iname '*.cpp')
     33 C_SRC = $(shell find . -iname '*.c')
     34 OBJS = $(CPP_SRC:.cpp=.o) $(C_SRC:.c=.o)
     35 HEADERS = $(shell find . -iname '*.h')
     36 
     37 
     38 
     39 # compile it
     40 all: $(EXEC)
     41 $(EXEC): $(OBJS) $(HEADERS)
     42     $(CXX) -o $@ $(OBJS) $(LDFLAGS)

|
放到makefile的最后,自动创建对.h的依赖关系。make会执行两遍,第一遍发现没有deps文件,然后生成,然后在解析一遍makefile。至于clean,自己加好了。


deps = $(subst .cpp,.dpp,$(filter %.cpp,$(srcs)))
deps += $(subst .c,.d,$(filter %.c,$(srcs)))
include $(deps)

%.dpp: %.cpp
        @set -e; $(RM) $@;                                                                                                  
        $(CC) -MM $(CPPFLAGS) $ $@.$$$$;                                                                                 
        sed 's,($(notdir $*)).o[ :]*,$(basename $@).o $@ : ,g'  $@;                                          
        $(RM) $@.$$$$

%.d: %.c
        @set -e; $(RM) $@;                                                                                                  
        $(CC) -MM $(CPPFLAGS) $ $@.$$$$;                                                                                 
        sed 's,($(notdir $*)).o[ :]*,$(basename $@).o $@ : ,g'  $@;                                          
        $(RM) $@.$$$$

    
 
 

您可能感兴趣的文章:

  • 求助:linux下网卡问题(内详,在线等)
  • 安装redhat linux9.0,hp pcserver ,scis硬盘,ide光驱,求助,内详!!!
  • 求助,在Linux下当文件夹大小超过1G时,删除文件夹内容
  • MAKEFILE求助,LINUX下如何将多个.a文件合并为一个.a文件或者.lib文件
  • 求助~~急~如何删除指定目录下的文件夹???(不是文件)
  • 求助关于zip命令,如何把文件压缩成指定大小的多个文件(Ubuntu7.04)
  • 求助!如何在没有图形界面的LINUX下压缩文件夹,并将这个压缩文件在windows下解压?
  • 求助,关于开发板的linux文件问题! iis7站长之家
  • [求助]修改文件内容
  • socket实现多文件并发传输,求助多线程实现问题?
  • 高分求助实例!!!!定期删除文件!!!!!
  • 高分求助!!!!定期删除文件!!!!!
  • 求助,linux中修改了目录dir下的某个文件,相应的dir属性中的时间会与修改目录下文件的时间一致,这是怎么实现的?
  • 求助!!用NFS传送文件显示乱码是怎么回事
  • 紧急求助:Unix下给文件夹重命名用什么命令?谢谢!!!!
  • 求助 请问vxworks支持inet_ntoa函数吗? 需要包含哪些头文件? 谢谢
  • 紧急求助!!!用CHKDSK/F检查磁盘,结果C盘下所有的文件的文件长度都变为0字节
  • 救命啊,AIX小机,我想删除一个10G的文件,我先移动到根目录下,然后rm 文件名后,用df -g发现空间没有变化?求助啊!
  • 求助 shell中split命令如何实现文件分割 并统计分割文件个数。分割完之后,命名方式从 文件名.001 开始
  • 求助,关于开发板的linux文件问题!
  • 求助:系统为什么会自动删除文件?
  • 求助!找不到头文件
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 求助 AWK的写法
  • 求一个SED的写法,测试没通过,求助,谢谢
  • 高分求助高分求助高分求助高分求助高分求助高分求助
  • 怎样读取HZK24S前十区的内容啊???求助求助
  • 紧急求助!紧急求助!
  • 【求助】iplanet问题,求助高手解答!
  • 菜鸟求助,solaris下计算问题求助
  • 【求助】SOS紧急求助..............极为简单的问题...跪求....
  • 高分求助啊!求助SUSE 10.0 不能上网.
  • 急急急急急急急啊,紧急求助啊!!!!!满分求助啊!!!!!!
  • 求助:linux下 vim的配置(高分求助)
  • red hat怎么安装gcc啊!总是出错,求助求助啊!!!yum源怎么改啊!!
  • 求助~~求助 ~~linux文件读写问题
  • 求助:信号 --13 进程中断
  • 求助,安装了红帽子后进不了
  • 新装linux求助
  • linux的 iptables问题求助
  • (高分求助)请问,那里有软件开发的<设计文档>
  • 一个简单的问题,高分求助!!!
  • VJ的一个问题,高分求助,熟悉VJ得请进!
  • 高分求助
  • 紧急求助java多线程编程!!!!!!!!!!!!!


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3