gpt4 book ai didi

c - 在Solaris9机器上生成文件错误: Dont know how to make target

转载 作者:行者123 更新时间:2023-11-30 20:40:58 24 4
gpt4 key购买 nike

#compile time flags
CFLAGS=-Wall -Werror
CC=gcc
all: prog-1-gcc prog-2-gcc prog-3-gcc prog-4-gcc prog-5-gcc prog-6-gcc \
prog-7-gcc prog-8-gcc prog-9-gcc prog-10-gcc prog-11-gcc prog-12-gcc \
prog-13-gcc prog-14-gcc prog-15-gcc prog-16-gcc prog-17-gcc prog-18-gcc \
prog-19-gcc prog-20-gcc prog-21-gcc
all-gcc: all
run: run-1-gcc run-2-gcc run-3-gcc run-4-gcc run-5-gcc run-6-gcc \
run-7-gcc run-8-gcc run-9-gcc run-10-gcc run-11-gcc \
run-12-gcc run-13-gcc run-14-gcc run-15-gcc run-16-gcc \
run-17-gcc run-18-gcc run-19-gcc run-20-gcc run-21-gcc
run-gcc: run
prog-%-gcc: prog-%.c
$(CC) $(CFLAGS) $< -o prog-$*.out
run-%-gcc: prog-%.out
-./prog-$*.out
make clean:
rm -f all *.out

当我输入时,这个makefile在solaris9机器上给了我这个错误

bash-2.05$ make prog-9-gcc
make: Fatal error: Don't know how to make target `prog-9-gcc'

所有规则都会发生这种情况,包括 make clean 规则。我很感激任何人的意见,因为我已经被这个错误困扰了几天了,谢谢!我还应该提到这个 makefile 在 centos 机器上 100% 完美地运行。

问题:在编译和运行 C 文件时,我可以对我的 make 文件或Solaris 上的输入行执行什么操作才能使其正常工作。

查理伯恩斯在下面的评论中回答了

最佳答案

这条规则告诉 make 它可以从文件 prog-9.c 构建 prog-9-gcc。因此,如果 make 给出该错误,则意味着您的目录中没有文件 proc-9.c:

prog-%-gcc: prog-%.c
gcc $(CFLAGS) prog-$*.c -o prog-$*.out

此规则的另一个问题是,它告诉 make 将构建一个文件 prog-%-gcc (对于 % 的某些值),但它是在撒谎。它实际上构建了一个完全不同的文件,prog-%.out。因此,每次运行 make 时,make 都会重建所有目标。该规则应为:

prog-%-gcc: prog-%.c
gcc $(CFLAGS) $< -o $@

实际上,您应该设置 CC = gcc 并在规则中使用 $(CC)

关于c - 在Solaris9机器上生成文件错误: Dont know how to make target,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19506613/

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