2011-08-09 78 views
2

我運行一個使用Makefile的程序,它給了我一個奇怪的錯誤,雖然成功執行。 make: *** [test] Error 10什麼是make:*** [test]錯誤10意味着什麼?

這裏是我的Makefile代碼

30 
31 test: 
32   @ echo 
33   @ echo "Testing Electric Fence." 
34   @ echo "After the last test, it should print that the test has PASSED." 
35   ./eftest 
36   ./tstheap 3072 
37   @ echo 
38   @ echo "Starting test for time-interval-measurement." 
39  export EF_ERRTRACK_START=3; export EF_ERRTRACK_END=5; ./time-interval-measurement-test 
40   @ echo 
41   @ echo "Electric Fence confidence test PASSED." 
42   @ echo 

在執行時:

Time interval measurement test: PASSED 
make: *** [test] Error 10 
-bash-3.2# make test 

回答

3

要解決的是(如果你不能改變你的二進制文件(返回/出口)行爲)使用

./exec || /bin/true 

+0

在makefile?你的意思是'export EF_ERRTRACK_START = 3;導出EF_ERRTRACK_END = 5; ./time-interval-measurement-test ||/bin/true' – kingsmasher1

+0

:哇!它的工作,這是做什麼?我的意思是/ bin/true? – kingsmasher1

+0

如果./exec返回的內容不等於0,它會調用/ bin/true返回0. 0表示在unix-shell中爲true。 –

0

一個錯誤的命令退出的。不是echo,其他的。檢查他們。

+0

在makefile? err no 10是什麼意思? – kingsmasher1

+0

任何方法來抑制錯誤? errno = 0(或類似?) – kingsmasher1

1

[富]錯誤NN」

這些錯誤是不是真的在所有犯錯誤。它們意味着一個作爲配方一部分被調用的程序返回了一個非0錯誤代碼('錯誤NN'),它將解釋視爲失敗,或者以某種其他異常方式(使用某種類型的信號)退出。請參閱Errors In Recipes.

如果沒有** *附加到消息,則子進程失敗,但makefile中的規則前綴爲 - 特殊字符,因此忽略該錯誤。

http://www.gnu.org/s/hello/manual/make/Error-Messages.html

所以你的命令之一返回一個非零的錯誤代碼。

+0

如何抑制?我覺得我只執行目標'./time-interval-measurement-test' – kingsmasher1