我有一个非常简单的c程序:
int main()
{
return(1);
}
和一个简单的Makefile:
all:
gcc -ansi -pedantic -o tmp tmp.c
./tmp
但是,当我输入make
时,我收到以下错误消息:
$ make
gcc -ansi -pedantic -o tmp tmp.c
./tmp
make: *** [all] Error 1
我遗失了哪些明显的东西?
答案 0 :(得分:21)
如果执行的任何命令退出时出错,则退出并显示错误。
由于您的程序以代码1退出,因此make将其视为错误,然后返回相同的错误。
您可以通过在行的开头放置 - 来告诉make忽略错误:
-./tmp
您可以在makefile here中看到有关错误处理的更多信息。
答案 1 :(得分:4)
您从应用程序返回错误代码1。将此报告为错误是做的工作!
答案 2 :(得分:4)
这是因为你的程序返回1。
使用gcc进行编译,这很好(返回0
),所以它继续执行,但你的程序返回一个非零值,所以make报告为错误。
成功完成的程序应该返回0
并返回非零值。