gpt4 book ai didi

c - 制作 : Totally ignoring a rule

转载 作者:可可西里 更新时间:2023-11-01 11:49:53 25 4
gpt4 key购买 nike

我正在尝试在添加新源 (processHandling.c) 后编译我的项目,当我“制作”时我得到了这个结果

gcc -gstabs -W -Wall -std=gnu99 -c main.c
gcc -gstabs -W -Wall -std=gnu99 -c inputHandling.c
gcc -gstabs -W -Wall -std=gnu99 -c syscallsWrapper.c
gcc -gstabs -W -Wall -std=gnu99 -o myShell main.o inputHandling.o processHandling.o syscallsWrapper.o
gcc: error: processHandling.o: No such file or directory
make: *** [myShell] Error 1

这是生成文件

CC = gcc
CFLAGS = -gstabs -W -Wall -std=gnu99

myShell: main.o inputHandling.o syscallsWrapper.o
$(CC) $(CFLAGS) -o myShell main.o inputHandling.o processHandling.o syscallsWrapper.o


main.o: main.c
$(CC) $(CFLAGS) -c main.c

inputHandling.o: inputHandling.c
$(CC) $(CFLAGS) -c inputHandling.c

processHandling.o: processHandling.c
$(CC) $(CFLAGS) -c processHandling.c

syscallsWrapper.o: syscallsWrapper.c
$(CC) $(CFLAGS) -c syscallsWrapper.c

clean:

-rm myShell *.o

我尝试使用 -d 标志运行 make,似乎出于某种原因 make 完全忽略了编译 processHandling.o 的规则;可能是什么问题?

另请注意,如果我使用 gcc -c 手动编译 processHandling,一切正常。

最佳答案

将 processHandling.o 添加到 myShell 目标的依赖列表中:

myShell: main.o inputHandling.o processHandling.o syscallsWrapper.o
$(CC) $(CFLAGS) -o myShell main.o inputHandling.o processHandling.o syscallsWrapper.o

顺便说一句,使用automatic variables可以帮助减少重复的文件名。例如:

myShell: main.o inputHandling.o processHandling.o syscallsWrapper.o
$(CC) $(CFLAGS) -o $@ $^

关于c - 制作 : Totally ignoring a rule,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13963654/

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