我有以下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 :(得分: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 $@ $^