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

谁能看懂下面这段Makefile代码我就服

    来源: 互联网  发布时间:2016-03-17

    本文导语:  SRC = libsample.c  SRC.C = $(filter %.C, $(SRC)) ..... ..... $(SRC.C:%.C=%.c):   #last line in this file | 1。是空 可用如下脚本进行确认: ----------------------------- SRC = libsample.c  #libsample.C SRC.C = $(filter %.C, $(SRC))  a...

SRC = libsample.c 
SRC.C = $(filter %.C, $(SRC))
.....
.....
$(SRC.C:%.C=%.c):   #last line in this file

|
1。是空
可用如下脚本进行确认:
-----------------------------
SRC = libsample.c  #libsample.C
SRC.C = $(filter %.C, $(SRC)) 
all:
@echo "print SRC.C = "$(SRC.C)
-----------------------------

2。是宏展开的语法(http://radiofly.to/nishi/programming/make-guide.html)
   $(SRC.C:%.C=%.c):
   是将SRC.C中的所有.C作为后缀的文件替换成.c文件,并以此作为一个没有依赖的目标

   a.如果SRC = libsample.C
   则经过宏展开之后,最后一行就变成  
     libsample.c:
   
   根据make规则,没有依赖的目标总是最新的,那么在Makefile中的其他地方,
所有以libsample.c作为依赖的目标都需要被更新。
    但是如果libsample.c不存在,那么根据Make的另一个规则,不存在的目标都是最旧的,
该目标需要被更新。那么这个不存在的libsample.c会被更新成最新的,
这样又得到所有以libsample.c作为依赖的目标都需要被更新这个结论。


    b.如果SRC = libsample.c
   则经过宏展开之后,最后一行就变成  
      :
   无目标,无依赖,无规则,就是什么都不做。



欢迎拍砖。

|
我来回答下,各位排砖:)
SRC = libsample.c  # 得到原文件列表为 “libsample.c”
SRC.C = $(filter %.C, $(SRC))   # 将上面得到的原文件列表进行过滤,找出形如*.C的文件列表,保存到SRC.C中
..... 
..... 
$(SRC.C:%.C=%.c):  # 将SRC.C中的*.C文件转化成*.c输出(实际存在于文件系统中的的文件名并没有改变),并作为taget 

    
 
 

您可能感兴趣的文章:

  • 从网上载了个C++程序的源代码,包含38个.cpp和.h,还有makefile.in和makefile.am两个文件,但无configure和makefile.请问怎么编译?谢谢!
  • linux源代码中的makefile
  • Makefile,如何传递宏定义DEBUG?以便于程序编译或者跳过程序中#ifdef DEBUG中间的代码段?
  • 源代码分布在几个不同的目录中,如何在 Makefile 文件中,给出相应的目录??我不知道怎么将目录加进去!55555
  • linux 下如何用一个makefile同时编译c和c++代码
  • 请高手为小弟解读一段GCC的makefile代码?万分感谢!
  • 只有一行代码的Makefile文件,在执行make命令时出错。请帮忙看看 ,谢谢
  • make 一个hello.cpp 出错!郁闷,全部代码及makefile 都贴上了,牛人帮看看
  • ★★★ 简单问题:如何使用MAKEFILE 在LINUX编译VC代码? ★★★
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • Makefile.in,Makefile.am,Makefile.bor应该怎么用?
  • makefile.am和makefile.in是什么文件,与makefile有什么联系吗?
  • 最近在学习linux C 看到了makefile部分,觉得makefile的语法很难理解,Makefile 的语法是不是shell语法?
  • 求解makefile问题,makefile.conf的作用?
  • 有makefile.am,有 makefine.in 为什么就是没有Makefile?
  • makefile如何调用文件目录下的makefile
  • 请教根据Makefile.am自动生成Makefile的问题
  • 怎麼樣使Makefile.in生成Makefile?
  • 【急!】一个程序里有好多文件夹里都有Makefile,如何找到最管用的makefile
  • 【makefile使用】请问怎样在shell中获取makefile的最终目标?
  • unix下面make makefile文件,提示“makefile is up-to-date",怎么办呀?
  • Makefile使用遇到的问题!"Makefile:3:missing the separator.stop"在线等待.......
  • Makefile是如何输出执行的路径的,表示执行的是那个Makefile
  • 下的tar.gz源码里只有makefile.in和makefile.am
  • 一句 makefile 的解释 -- makefile 与 shel 结合
  • linux makefile error :Makefile:335: *** commands commence before first target。
  • [test@localhost ~]$ cat <makefile >catfile 跟cat > catfile <makefile是一样的吧?
  • 关于makfile,makefile.in, makefile.am. configure之间的关系
  • win32下编译Linux 下的项目(makefile.am和makefile.in)
  • 关于makefile的问题。一个makefile如何生成两个可执行文件。


  • 站内导航:


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

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

    浙ICP备11055608号-3