gpt4 book ai didi

c - Make 仅运行 'gcc',不带任何参数

转载 作者:行者123 更新时间:2023-11-30 14:51:13 24 4
gpt4 key购买 nike

我正在学习如何使用 C 和 Make,但是 Make 让我抓狂。当我使用我创建的所有目标运行 make 时,它​​会失败,运行不带参数的 gcc 时,除了其中一个随机运行得很好。当我尝试使用大多数目标进行构建时,会发生以下情况:

$ make strvector.o
gcc
gcc: fatal error: no input files
compilation terminated.
make: *** [vector.o] Error 4

当我运行有效的时候:

$ make word.o
gcc -Wall -g -ansi -pedantic -c -o word.o word.c

这是我的 makefile:

CC = gcc
CFLAGS = -Wall -g -ansi -pedantic -c -o $@ $^
LD = gcc
LDFLAGS =

fw: fw.o vector.o hashtable.o strvector.o
$(LD) $(LDFLAGS) -o fw vector.o hashtable.o strvector.o word.o

fw.o: fw.c vector.o hashtable.o strvector.o word.o
$(CC) $(CFALGS)

vector.o: vector.c word.o
$(CC) $(CFALGS)

hashtable.o: hashtable.c vector.o word.o
$(CC) $(CFLAGS)

word.o: word.c
$(CC) $(CFLAGS)

strvector.o: strvector.c
$(CC) $(CFALGS)

我一生都无法弄清楚为什么 word.o 构建得很好,但其他任何东西都构建不好。如果有人可以提供帮助,我们将不胜感激。

--编辑-- 我打错字了。编写 CFALGS 而不是 CFLAGS。不知道我是怎么错过那个的。谢谢大家!

最佳答案

您在编译命令中遗漏了文件名。

strvector.o: strvector.c
$(CC) -c $(CFLAGS) -o $@ $<

$@被替换为当前目标 $<替换为当前依赖项。

关于c - Make 仅运行 'gcc',不带任何参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48471345/

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