gpt4 book ai didi

Makefile 中的 Cflags 没有出现

转载 作者:太空宇宙 更新时间:2023-11-04 02:26:49 24 4
gpt4 key购买 nike

我有一个 makefile,但似乎 cflags 只对我程序中的某些文件有效,我不确定为什么。

这是我使用 make 时发生的情况:

$ make
gcc -Wall -ansi -pedantic -g -c main.c
gcc -c fw.c
gcc -c trie.c
gcc -Wall -ansi -pedantic -g -c linked.c
gcc -Wall -ansi -pedantic -g -o fw main.o fw.o trie.o linked.o

您可以看到,当尝试制作 fw.c 和 trie.c 时,它不包含标志,但它确实包含其他文件的标志。

这是我的生成文件:

 CC = gcc
CFLAGS = -Wall -ansi -pedantic -g
MAIN = main
OBJS = main.o fw.o trie.o linked.o
all : $(MAIN)

$(MAIN) : $(OBJS) fw.h trie.h linked.h
$(CC) $(CFLAGS) -o fw $(OBJS)

main.o : main.c fw.h trie.h linked.h
$(CC) $(CFLAGS) -c main.c

fw.o : fw.c fw.h trie.h
$(CC) $(CGLAGS) -c fw.c

trie.o : trie.c fw.h trie.h linked.h
$(CC) $(CGLAGS) -c trie.c

linked.o : linked.c trie.h linked.h
$(CC) $(CFLAGS) -c linked.c

rm :
rm *.o $(MAIN) core

我还有一个额外的问题,每当我对上次 make 中未更改的文件使用 make 时,它​​仍然会执行以下行:

$ make
gcc -Wall -ansi -pedantic -g -o fw main.o fw.o trie.o linked.o

而通常,它给我的信息是“无事可做”。我试图将此 makefile 与我的其他工作 makefile 进行比较,但我找不到错误。我哪里做错了?

最佳答案

您的 Makefile 中有拼写错误:

 fw.o : fw.c fw.h trie.h
$(CC) $(CGLAGS) -c fw.c

trie.o : trie.c fw.h trie.h linked.h
$(CC) $(CGLAGS) -c trie.c

注意 G。相反,使用这个:

 fw.o : fw.c fw.h trie.h
$(CC) $(CFLAGS) -c fw.c

trie.o : trie.c fw.h trie.h linked.h
$(CC) $(CFLAGS) -c trie.c

关于Makefile 中的 Cflags 没有出现,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49959055/

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