在Makefile趟過的一些坑
阿新 • • 發佈:2018-12-19
“make: Nothing to be done for xxx” && “ *** missing separator. Stop.”
我實際的操作是在Makefile裡面添加了一個命令,儲存之後,敲了命令之後就出現瞭如標題這樣的問題,百度看了很多別人的部落格、帖子,說的都是因為Makefile沒有做make clean,或者make沒有安裝成功,寫命令的格式不對之類的問題。但實際情況是,我fork下來的專案,原本Makefile裡的命令都是可以跑的,所以之前的解決方案都不適合我。
問題根源是,我開始一直都是Goland編譯器裡對Makefile進行修改,儘管我用了tab而不是好幾個空格鍵,但還是會出現問題。 解決方案
在Makefile中,cd到一個目錄沒有辦法生效
這個問題讓我一度想使用cp,將需要使用的檔案拷貝到目標目錄,使用完成後再刪除之前拷貝的內容。但如此做實在太傻了,我想Makefile的設計者難道沒有考慮到cd這個命令嗎?後來通過百度找到了解決方案。
解決方案:cd的功能生效的前提是在當前行,所以指令應該這樣寫
cd /test/src && ./test.sh && cd ../..
或者
cd /test/src ; ./test.sh ; cd ../..