Makefile和Makefile.sh在同一級目錄下引發的問題

問題描述

.
├── Makefile
└── Makefile.sh

file:Makefile

all:
    @bash Makefile.sh
file:Makefile.sh

#!/bin/sh

echo "test"

ls -l 查看Makefile 和 Makefile.sh的時間

如果Makefile的時間 >= Makefile.sh的時間,那麼執行make可正常顯示test

test
如果Makefile的時間 < Makefile.sh的時間,那麼執行make失敗。顯示錯誤信息如下:

cat Makefile.sh >Makefile 
chmod a+x Makfile 
Makefile:3: *** missing separator. Stop.
此時Makefile文件的內容與Makefile.sh相同。

我做了如下的實驗: 
1、把Makefile.sh腳本重命名爲test.sh,就不會出現上述錯誤。 
2、在一個空的目錄下面,只創建一個Makefile.sh,只要執行make就會出現上述錯誤。 


小結

問題的原因出在了shell腳本的命名上。在Makefile的同級目錄下,shell腳本不應該以Makefile命名。

如果命名了Makefile.sh腳本,只要shell腳本的時間大於Makefile的時間,執行make就會出現上述描述的錯誤。


~ end ~  :)







發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章