写makefile遇到的问题

C、C++和Java语言
回复
dede666
帖子: 2
注册时间: 2018-05-06 11:14
送出感谢: 2 次
接收感谢: 0

写makefile遇到的问题

#1

帖子 dede666 » 2018-05-06 11:27

代码: 全选

all : main.o func.o                                                                                  
        gcc main.o func.o                                                                            
main.o : main.c                                                                                      
        gcc -c main.c                                                                                
func.o : func.c                                                                                      
        gcc -c func.c                                                                                
clean :                                                                                              
        rm `ls | grep -v ^main.c$ | grep -v ^func.c$ | grep -v ^makefile$ | grep -v ^jack.h$ `                                                                                                         
写clean 为了删除 除了 main.c func.c jack.h makefile这四个文件之外的文件
在执行 make clean时 为啥无法删除 像 main.c~ func.c~ 这样的文件???
难道 $ 没有匹配行尾? 而是当作对变量的引用了?
头像
imxys
帖子: 47
注册时间: 2014-05-03 22:44
系统: Ubuntu 16.04
送出感谢: 4 次
接收感谢: 1 次

Re: 写makefile遇到的问题

#2

帖子 imxys » 2018-05-06 14:45

我怀疑是管道的用法用错了。
您clean目标下面执行的动作是
ls | grep |grep | grep
就相当与是把ls的结果,过滤掉main.c,再过滤了func.c,再过滤了makefile,再过滤jack.h

上面只是我的一面之辞,您可以执行一下脚本里用反引号包含的部分看看是不是您想删除的内容。
这些用户感谢了作者 imxys 于这个帖子:
dede666 (2018-07-13 12:35)
评价: 3.7%
dede666
帖子: 2
注册时间: 2018-05-06 11:14
送出感谢: 2 次
接收感谢: 0

Re: 写makefile遇到的问题

#3

帖子 dede666 » 2018-05-06 15:15

imxys 写了:我怀疑是管道的用法用错了。
您clean目标下面执行的动作是
ls | grep |grep | grep
就相当与是把ls的结果,过滤掉main.c,再过滤了func.c,再过滤了makefile,再过滤jack.h

上面只是我的一面之辞,您可以执行一下脚本里用反引号包含的部分看看是不是您想删除的内容。

感谢回复。。没太听懂。。我就是要过滤掉那几个文件呀。。。main.c那几个。。。。除了那几个,删除其他的所有文件
头像
maplebeats
帖子: 372
注册时间: 2011-02-16 1:17
送出感谢: 0
接收感谢: 6 次

Re: 写makefile遇到的问题

#4

帖子 maplebeats » 2018-05-06 23:51

grep加上-E?
My blog : OOXX
头像
astolia
论坛版主
帖子: 3400
注册时间: 2008-09-18 13:11
送出感谢: 1 次
接收感谢: 570 次

Re: 写makefile遇到的问题

#5

帖子 astolia » 2018-05-07 11:07

把$换成$$。
另外别这么写clean规则。明确指定你要删除的文件名,而不是排除部分后全删。比如 rm -f *.o *~
这些用户感谢了作者 astolia 于这个帖子:
dede666 (2018-05-08 9:06)
评价: 3.7%
头像
comero
帖子: 20
注册时间: 2016-09-15 9:30
来自: 浙江省杭州市
送出感谢: 1 次
接收感谢: 0

Re: 写makefile遇到的问题

#6

帖子 comero » 2018-05-08 15:19

解决了吗?
感觉没问题啊,imxys 指的是先输出看看对不对,对的就得在别的方面找问题了。
回复

回到 “C/C++/Java”