请教Makefile写法

tsingien 2006-12-25 05:02:47
有一个项目,有多个可执行文件,之间没有联系,只是使用了同一个lib目录下面的库文件。目录结构如下:
proj/a/proca
proj/b/procb
proj/lib/pub.o

在目录a下有生成proca的Makefile文件,如果pub.o相关的源文件修改了,会自动关联更新。在目录b下有生成procb的Makefile文件,同样的,如果pub.o相关的源文件修改了,会自动关联更新。

现在需要在proj/目录下写一个Makefile文件,运行make可以更新(如果需要)目录a和目录b下的可执行文件。

all: a/proca b/procb
a/proc:
(tab)(cd a;make)
b/procb
(tab)(cd b;make)

这个样式运行起来报告make: Nothing to be done for `all'.我的系统是CentOS4.2。
[test@IFSVR proj]$ rpm -q make
make-3.80-5
[test@IFSVR proj]$ uname -a
Linux IFSVR 2.6.9-22.ELsmp #1 SMP Sat Oct 8 19:11:43 CDT 2005 i686 i686 i386 GNU/Linux

能给一个我这种情况的makefile文件吗?看了几个文档,和我想要的关系不大。第一个可运行的,分全拿了。呵呵
...全文
510 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
yevv 2007-02-14
  • 打赏
  • 举报
回复
这个哭啊 来晚了一会儿 没得到分
yevv 2007-02-14
  • 打赏
  • 举报
回复
——————————
all: a/proca b/procb
a/proc:
(tab)(cd a;make)
b/procb
(tab)(cd b;make)
——————————
cd 命令会起作用吗? !!!!!!!!

可以改成如下形式
all:a/proca b/procb
a/proca:
(tab)$(MAKE) -C a
b/procb:
(tab)$(MAKE) -C b

你也可以不用$(MAKE) :)而直接用make 但用MAKE变量还是有些好处的 标准些 :)

zhousqy 2006-12-29
  • 打赏
  • 举报
回复
all: proca procb
proca:
(tab)(cd a;make)
procb
(tab)(cd b;make)
这样试试呢
xuejinn 2006-12-28
  • 打赏
  • 举报
回复
gz
jixingzhong 2006-12-26
  • 打赏
  • 举报
回复
man / help 看看帮助吧

或者找手册/去官网 看看原因何在 ~~
tsingien 2006-12-26
  • 打赏
  • 举报
回复
可能是系统原因,所以我把我的系统和make的版本列出来了。不知道怎么回事
tsingien 2006-12-26
  • 打赏
  • 举报
回复
看过了。
weixing979 2006-12-25
  • 打赏
  • 举报
回复
和我一起写Makefile 里面介绍的也不能用吗

3,881

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 其它技术问题
社区管理员
  • 其它技术问题社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧