这个 makefile 是否消除了 .c 文件?
all: servidor
servidor: servidor.o
gcc -lpthread -o servidor.o
servidor.o:
clean:
gcc -c servidor.c
rm -rf servidor.o
问题:
a) clean:
行是否消除了 servidor.c
文件?
b) 如何修改 makefile,以便它也编译 client.c
程序并创建 client.o
?
all: servidor
servidor: servidor.o
gcc -lpthread -o servidor.o
servidor.o:
clean:
gcc -c servidor.c
rm -rf servidor.o
Questions:
a)Is the clean:
line eliminating the servidor.c
file?
b)How can I modify the makefile so that it also compiles a client.c
program and creates a client.o
?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
你的整个 makefile 应该是这样的:
Your entire makefile should look like this:
不。该行
只是确保
servidor.o
存在的蹩脚方法,并且后续的rm
不会失败。更应该是最简单的方法是使用内置规则。如果您在任何规则的先决条件中添加
client
或client.o
,它将自动从client.c
构建。(如果
client.c
需要它,请将-lpthread
添加到LDLIBS
)No. The line
is just a lame way of ensuring
servidor.o
exists, and the subsequentrm
does not fail. It should rather beThe easiest way is use built-in rules. If you add
client
, orclient.o
in any of a rule's prerequisites, it will be built automatically fromclient.c
.(and add
-lpthread
toLDLIBS
if you need it forclient.c
)这个makefile看起来很奇怪,我不知道它是否可以工作?但我认为最好如下:
the makefile seems so strange,i am not sue whether it can work or not? but i think it better as following: