2016-11-13 72 views
0

我有下面的Makefile:Makefile文件可执行错误

all: test.c test1.c 
    gcc -o test test.c -lm 
    gcc -o test1 test1.c 
    ./test 1000 input.txt 

我得到了如下的错误./test 1000 input.txt make: *** [run] Error 255。 Makefile是否正确?

+0

错误255是“未找到命令”行中的内容。这可能是路径(但你已经添加了'./')或者编译失败,并且没有可执行文件(但是这会导致GCC抛出一条或多或少有用的评论)。所以请检查一切是否建立和适当。这是唯一的错误? – deamentiaemundi

+0

是的,这是唯一的错误。 – CapturedTree

+0

@deamentiaemundi我已经更新了我的问题,以使它更简单。你能再看一次吗? – CapturedTree

回答

1
./test 1000 input.txt make: *** [run] Error 255 

这并不意味着你的Makefile有什么问题。这意味着您的./test程序以状态255退出。

您还没有向我们显示test.c,但我假设您没有写入return 255;。由于退出状态通常只有8位,因此您可能(错误地)写入return -1。您(错误地)忽略了从main导致未定义行为的返回语句,并且-1恰好位于返回值寄存器(x86上的eax)上。


你应该总是使编译器警告。为了强制你纠正它们,这些警告(通常表示破坏的代码)也会导致编译失败。

CFLAGS = -Wall -Wextra -Werror 

test: test.c 
     $(CC) $(CFLAGS) -o [email protected] $^ 
+0

这是错误!我在test.c中的主要方法中忘了'return 0;'。谢谢! – CapturedTree