syntax error: unexpected end of file
当我运行 make clean 时,我得到了。
当我删除导致错误的变量周围的括号时,我成功地摆脱了该错误。
我想知道为什么会这样。
我在用:
- Windows XP SP2 64 位
- CYGWIN
- KSH R48
我的变量被调用TARGET
,就像这样,但更长:
./ShowEnumContentsPrefAPI.o ./ShowEnumsPrefAPI.o
发生错误的行是:
rm -f $(TARGET)
当我删除括号时,错误消失了,它起作用了:
rm -f $TARGET
另一行也是:
if [ "$(TARGET)" != "" ]; then \
当我删除括号时,错误消失了,它起作用了:
if [ "$TARGET" != "" ]; then \
==================================================== =============
- 这里发生了什么?
- 如何在不更改导致错误的每一行的情况下防止这种情况发生(我在这个 makefile 中有超过 1000 行)?
- 这是如何工作的
mks 5.2 sh.exe
,将不会工作cygwin ksh
?
==================================================== =============
更新:
这是实际的代码:
clean:
if [ "$TARGET" != "" ]; then \
rm -rf $(TARGET); \
fi
这就是产生错误的原因syntax error: unexpected end of file
:
clean:
if [ "$(TARGET)" != "" ]; then \
rm -rf $(TARGET); \
fi
唯一的区别是目标周围的括号。
做
echo "T:$T"; \
echo "TARGET:$TARGET"; \
出品
T:
TARGET:ARGET
echo "(TARGET):$(TARGET)";\
再次产生syntax error: unexpected end of file
。
今天我尝试切断一些 TARGET 变量。故意让它变短并且rm -f $(TARGET)
工作正常。我怀疑这是 cygwin 的问题rm
,[
exes。我会尝试升级到 cygwin 的最新版本,看看问题是否仍然存在。