我有下面的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是否正確?
我有下面的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是否正確?
./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] $^
這是錯誤!我在test.c中的主要方法中忘了'return 0;'。謝謝! – CapturedTree
錯誤255是「未找到命令」行中的內容。這可能是路徑(但你已經添加了'./')或者編譯失敗,並且沒有可執行文件(但是這會導致GCC拋出一條或多或少有用的評論)。所以請檢查一切是否建立和適當。這是唯一的錯誤? – deamentiaemundi
是的,這是唯一的錯誤。 – CapturedTree
@deamentiaemundi我已經更新了我的問題,以使它更簡單。你能再看一次嗎? – CapturedTree