这个 makefile 是否消除了 .c 文件?

发布于 2024-10-06 09:58:04 字数 317 浏览 1 评论 0原文

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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

不乱于心 2024-10-13 09:58:04

你的整个 makefile 应该是这样的:

LDLIBS=-lpthread
servidor: servidor.o client.o
clean:
<TAB>rm -f *.o

Your entire makefile should look like this:

LDLIBS=-lpthread
servidor: servidor.o client.o
clean:
<TAB>rm -f *.o
苍景流年 2024-10-13 09:58:04

a)是否干净:消除了线
server.c 文件?

不。该行

gcc -c servidor.c

只是确保 servidor.o 存在的蹩脚方法,并且后续的 rm 不会失败。更应该是

clean:
    -rm -rf servidor.o

b)如何修改 makefile,以便它也编译 client.c 程序并创建 client.o?

最简单的方法是使用内置规则。如果您在任何规则的先决条件中添加 clientclient.o,它将自动从 client.c 构建。

(如果 client.c 需要它,请将 -lpthread 添加到 LDLIBS

a)Is the clean: line eliminating the
servidor.c file?

No. The line

gcc -c servidor.c

is just a lame way of ensuring servidor.o exists, and the subsequent rm does not fail. It should rather be

clean:
    -rm -rf servidor.o

b)How can I modify the makefile so that it also compiles a client.c program and creates a client.o?

The easiest way is use built-in rules. If you add client, or client.o in any of a rule's prerequisites, it will be built automatically from client.c.

(and add -lpthread to LDLIBS if you need it for client.c)

深海夜未眠 2024-10-13 09:58:04

这个makefile看起来很奇怪,我不知道它是否可以工作?但我认为最好如下:

    all: client
client: client.o
    gcc -lpthread -o client.o
client.o:
    gcc -c client.c
clean: 
    rm -rf client.o

the makefile seems so strange,i am not sue whether it can work or not? but i think it better as following:

    all: client
client: client.o
    gcc -lpthread -o client.o
client.o:
    gcc -c client.c
clean: 
    rm -rf client.o
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文