一个关于makefile的问题!!!

caac9999 2003-08-21 04:38:37
我在Unix下写了两个源程序err_fun.c 和 testls.c, 头文件为ourhdr.h(两个.c程序都用此头文件),编写的makefile文件如下:
objects = testls.o err_func.o
testls: $(objects)
cc -o testls $(objects)

testls.o: ourhdr.h
err_func.o: ourhdr.h


.PHONY: clean
clean:
rm *.o
执行结果如下:
$make
cc -O -c testls.c
cc -O -c err_func.c
cc -o testls testls.o err_func.o
可是我发现并没有执行 rm *.o操作,当我再次执行make时,执行结果如下:
$make
'testls' is up to date.
请问各位大虾这是怎么回事呀?为什么clean中的操作不执行呀?
...全文
45 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
caac9999 2003-08-21
  • 打赏
  • 举报
回复
ok!thanks!!!
ianzy 2003-08-21
  • 打赏
  • 举报
回复
在不带参数时,makefile 中第一个 : 前的内容被执行,即
testls: $(objects) 后的内容被执行。
如果你要执行 rm *.o, 可键入命令:make clean

还有一个办法,就是在 tesetls: $(objects) 之前加入
all: testls clean

这样在 make 的时候就两个都会执行了。

23,116

社区成员

发帖
与我相关
我的任务
社区描述
Linux/Unix社区 应用程序开发区
社区管理员
  • 应用程序开发区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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