簡體   English   中英

Makefile和命令行行為不同

[英]Makefile and command line different behaviour

我目前正在做一個更大的項目,我想用很少的不同代碼作為輸入來測試可執行文件。
我這樣稱呼它./test < code1並在命令后echo $? ,它顯示最后返回的值[0,1,2,..]

我想自動化,所以我在makefile創建了如下調用:

#makefile 
[...]
test : 
    ./test < code1 
    @echo $$?
    ./test < code2 
    @echo $$?
    [...]

[...]

所以我可以打電話給make test

當程序成功返回0時,一切正常。 但是,當程序必須返回非0的值時,它將顯示以下內容:

./test < code3
Makefile:19: recipe for target 'test' failed
make: *** [test[ Error 2

奇怪的是,當我嘗試使用導致其在命令行中崩潰的代碼調用程序時:

./test < code3; echo $?  

它運行完美,並向我顯示了最后一個退出狀態(例如3)。
我現在很困惑,因為我認為它應該同樣起作用。 有人可以幫我嗎?
謝謝!

看到這個答案: https : //stackoverflow.com/a/41452754/939557

您需要將echo置於與測試調用相同的邏輯行中:

test : 
        ./test < code1; echo $$?
        ./test < code2; echo $$?

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM