我是Makefile的新手。這就是我目前所擁有的:
install:
ifeq ($(OS),Windows_NT)
# do something
else
# do something
endif
但是make會拋出這個錯誤:
ifeq (Windows_NT)
/bin/sh: -c: line 0: syntax error near unexpected token `Windows_NT'
/bin/sh: -c: line 0: `ifeq (Windows_NT)'
make: *** [install] Error 2
我不知道如何解決這個問題。請幫助我。
uj5u.com熱心網友回復:
makefile 的內容采用 Make 語法,配方中除外。
$(info hello)
foo:
echo working
echo still working
該$(info ...)行是一個 Make 函式呼叫;這些echo行是構成foo規則配方的 shell 命令。每個 shell 命令開頭的空格是 TAB 字符,而不是空格。這就是 Make 知道它是一個 shell 命令的方式,它被傳遞給 shell 而不是被解釋為 Make 代碼。
你寫的條件是一個 Make 條件,你用 Make 語法寫的,但是你把 TAB 放在了行的開頭,所以 Make 將它們傳遞給 shell,shell 抱怨它們無效(在它的語言中)。
洗掉條件行開頭的制表符,但保留 shell 命令開頭的制表符:
install:
ifeq ($(OS),Windows_NT)
echo doing something
else
echo doing something else
endif
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/409881.html
標籤:
