gpt4 book ai didi

c - 在使用 makefile 的 c 程序中出现错误

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

我在使用 makefile 运行我的 c 程序时遇到错误。当我直接在终端运行如下命令时,程序运行正常

$ ./a.out test1.c test2.c

(a.out是程序编译生成的可执行文件,test1.c和test2.c是命令行参数)

但是当我在 makefile 中编写以下内容时:

all : compile run

compile :
gcc ConsonantVowelCount15.c
run :
./a.out $(INPUT)

然后在终端运行以下命令

$ make INPUT=test1.c\ test2.c

它给出了输出,后面跟着错误

makefile:6: recipe for target 'run' failed
make: *** [run] Error 45

最佳答案

除了关于run 应该如何依赖于a.outcompile 的评论之外,您应该真正将其更改为a.out 或被制作成依赖于 a.out 的伪造品 您收到此错误消息的确切原因是因为您的程序返回了一个非零错误值,特别是 45 .

当该配方中的任何命令返回非零值时,该配方失败(假设 Linux 和大多数其他系统,其中 0 表示成功)。因此,您的 run 目标失败,因为 ./a.out $(INPUT) 返回的不是 0。这当然是假设您已经包含了整个错误消息并且错误编号和 Makefile 以及错误消息不是来自 run 的依赖项。一种简单的检查方法是将 ./a.out $(INPUT) 替换为 true。如果一切正常,那就是您的程序本身。

请注意,该程序可能看起来运行正确,但仍会返回错误值。一个可能的原因是您没有在 main 函数中包含 return 语句。假设您正在使用 bash,您可以通过 echo $? 查看最新程序的返回值。

关于c - 在使用 makefile 的 c 程序中出现错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31704161/

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