1. 程式人生 > >在Makefile趟過的一些坑

在Makefile趟過的一些坑

“make: Nothing to be done for xxx” && “ *** missing separator. Stop.”

我實際的操作是在Makefile裡面添加了一個命令,儲存之後,敲了命令之後就出現瞭如標題這樣的問題,百度看了很多別人的部落格、帖子,說的都是因為Makefile沒有做make clean,或者make沒有安裝成功,寫命令的格式不對之類的問題。但實際情況是,我fork下來的專案,原本Makefile裡的命令都是可以跑的,所以之前的解決方案都不適合我。

問題根源是,我開始一直都是Goland編譯器裡對Makefile進行修改,儘管我用了tab而不是好幾個空格鍵,但還是會出現問題。 解決方案

使用vim對Makefile進行編輯,並且遵照Makefile要求的格式。

在Makefile中,cd到一個目錄沒有辦法生效

這個問題讓我一度想使用cp,將需要使用的檔案拷貝到目標目錄,使用完成後再刪除之前拷貝的內容。但如此做實在太傻了,我想Makefile的設計者難道沒有考慮到cd這個命令嗎?後來通過百度找到了解決方案。 解決方案:cd的功能生效的前提是在當前行,所以指令應該這樣寫 cd /test/src && ./test.sh && cd ../.. 或者 cd /test/src ; ./test.sh ; cd ../..