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

请教Makefile 问题************************************************

    来源: 互联网  发布时间:2016-02-08

    本文导语:  -dir   |----main.c Makeifle ----subdir1        |-----src1.c src1.h  Makefile ----subdir2        |-----src2.c src2.h  Makefile 目录dir下有两个子目录subdir1,subdir2~ 我想实现的效果: a. 在subdir1下生成src1.o~ 在subdir2下生成src2.o~ 然后...

-dir
  |----main.c Makeifle
----subdir1
       |-----src1.c src1.h  Makefile
----subdir2
       |-----src2.c src2.h  Makefile

目录dir下有两个子目录subdir1,subdir2~
我想实现的效果:
a.
在subdir1下生成src1.o~ 在subdir2下生成src2.o~
然后让总的makefile将main.o src1.o src2.o 连接生成 main 可执行文件~
b. 
当修改任何一个.c文件后~再重新make时~能够自动推导出哪个文件被修改了~
而不需要重新编译所有的文件~

目前我已经完成了a, 但b总是搞不好~ 下面是我写的~  麻烦大家帮我想想 ~ 先谢过~

---------------------------------------------------------
dir->Makefile:
SOURCE = main.c ./src1/src1.c ./src2/src2.c
OBJ = $(SOURCE:%.c=%.o)
all:$(OBJ)
      $(CC) -o $@  $(OBJ)
$(OBJ):$(SOURCE)
       make -C ./src1/
       make -C ./src2/
       $(CC) -o main.o -c main.c
---------------------------------------------------------
subdir1->Makefile
SOURCE = src1.c
OBJ1    = $(SOURCE:%.c=%.o)
$(OBJ1):$(SOURCE)
          $(CC) -o $@ -c $
Makefile
SOURCE = src2.c
OBJ2    = $(SOURCE:%.c=%.o)
$(OBJ2):$(SOURCE)
          $(CC) -o $@ -c $
Makefile这一个Makefile就可以满足:

SOURCE = main.c ./src1/src1.c ./src2/src2.c
OBJ = $(SOURCE:%.c=%.o)
all:$(OBJ)
        gcc -o $@  $(OBJ) 
%.o:%.c
        gcc -c $

    
 
 

您可能感兴趣的文章:

  • 请教根据Makefile.am自动生成Makefile的问题
  • 请教一个简单makefile的写法
  • 请教点的Makefile文件语法?
  • 请教一个makefile的问题?
  • 请教Makefile文件编写
  • 请教makefile的使用方法。
  • 请教下,各位作MakeFile时用Automake这个工具么
  • 急切请教一个关于makefile的问题,万分感谢。
  • 请教makefile中的 ifeq else default
  • 我是初学,请教大家gdb,dbx,makefile,cc的用法.
  • makefile请教!
  • 请教makefile中的一个规则
  • 请教,Makefile目标文件要通配目录下所有C文件,如何写?
  • 100分请教高手一个Makefile的小问题
  • 请教关于makefile的问题,该怎么写?
  • 请教makefile问题
  • 请教makefile文件编写问题
  • MAKEFILE自动生成依赖关系问题请教
  • 请教:linux unix 下makefile的问题
  • 高分请教:下面的makefile是什么意思?
  • 请教本地硬盘安装问题请教本地硬盘安装问题
  • 请教,请教,这个问题是为什么????
  • ■请教■请教redhat最基本的问题!
  • 请教一个 shell 问题,我用下面这个 shell 语句总是失败,请教
  • 高分请教,各位大侠,请教一个问题,理论高手请进??谢谢
  • 请教象我这样的硬盘应如何安装Linux,我昨天试装了,但有问题。(老问题了,也看了前面的帖子,但还是来请教,请多指教)
  • 请教一个函数入口处的汇编问题(压栈问题)
  • 请教!出现这个提示是什么原因..是模块版本问题,还是其他问题..http://220.114.102.28/xitong/ProductShow.asp?ArticleID=82
  • 请教两个小问题:一个cgywin下使用vi的问题,另一个socket的问题
  • 请教一个opengl的问题
  • 请教两个redhat9问题
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 请教Linux下pgadmin3-1.0.2的编译和安装!!高分请教!
  • 各位大虾,请教装了REDHAT9操作系统后,启动时无法引导到LINUX,请教该如何解决啊
  • 请教,请教,,,一定要看!!一定要看!!
  • 请教高手,小弟打印width=1500,height=600(A3纸)的Applet,在预览中是该区域是黑的,打印出来也是黑的,请教高手解决一下
  • :请教高手,小弟打印width=1500,height=600(A3纸)的Applet,在预览中是该区域是黑的,打印出来也是黑的,请教高手解决一下
  • 请教这种循环的执行过程
  • 请教如何在指定目录下查找包含指定文字的文件
  • 请教局域网中如何通过ip地址得到主机名
  • 请教,如何用虚拟订机安装liux
  • 【请教】LINUX 下SNMP的MIB开发
  • 请教两个shell
  • 请教高手:如何用gnome/gtk编写托盘程序
  • 菜鸟请教Linux
  • 请教semop()函数的用法、含义
  • 请教个,关于C编译器参数CFLAGS的问题(真诚请教,分不够了全部送出)
  • 请问如何在Redhat7.1下安装Ftp服务,如何开启Ftp帐号????请教!!!急急急急急急
  • Think in java 问题。(请教)
  • 请教下我的eth0为什么设置后重启会失败?
  • 请教:$PWD 这个东西是什么意思啊?谢谢!
  • 请教高手AIX中怎么删除行尾的字符^M


  • 站内导航:


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

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

    浙ICP备11055608号-3