gpt4 book ai didi

c - gcc makefile 带有 -Wall -pedantic 和 -lpthread

转载 作者:行者123 更新时间:2023-11-30 15:14:18 25 4
gpt4 key购买 nike

我尝试从模板制作一个 makefile,这就是我得到的:

CFLAGS = -Wall -pedantic
LFLAGS = -lpthread
CC = gcc
OBJS = bank5.o client2.o
PROGRAM = ex2

all: bank client

ex2: $(OBJS)
$(CC) $(LFLAGS) $(OBJS) -o $(PROGRAM)

bank: bank5.c
$(CC) $(CFLAGS) -c bank5.c receive_message.c send_message.c -o bank5

client: client2.c
$(CC) $(CFLAGS) -c client2.c receive_message.c send_message.c -o client2

当我尝试运行它时,出现此错误:

gcc -Wall -pedantic -c bank5.c receive_message.c send_message.c -o bank5
gcc: fatal error: cannot specify -o with -c, -S or -E with multiple files
compilation terminated.
make: *** [bank] Error 4

这是我的 makefile 在 -Wall 和 -pedantic 之前的样子,运行正常:

all: bank client

bank: bank5.c
gcc bank5.c receive_message.c send_message.c -o bank5 -lpthread

client: client2.c
gcc -o client2 client2.c send_message.c receive_message.c

最佳答案

  • -c 将仅编译每个文件(即生成目标文件),而不将它们链接在一起。由于一个目标文件对应一个源文件,因此将创建多个目标文件

  • -o 指定一个输出文件。

显然,两者是相互矛盾的。

删除 -c 以解决问题。

<小时/>

无论如何,你的 makefile 看起来已经损坏了。 ex2 在那里做什么? bank5.oclient2.o 未在任何地方创建。

关于c - gcc makefile 带有 -Wall -pedantic 和 -lpthread,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34111159/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com