`/ bin / bash:-c:第13行:语法错误:文件意外结束`在Makefile中更改变量时出现模糊错误

时间:2015-08-10 12:02:51

标签: bash makefile autotools automake

我发生了这件奇怪的事情,这似乎与我后来的错误完全无关。

我的AutoTools构建系统运行良好,但如果我在Makefile中更改this line,使用$(top_builddir)而不是$(top_srcdir),则构建开始失败:

...
/usr/bin/mcs -r:/usr/lib/pkgconfig/../../lib/cli/glib-sharp-3.0/glib-sharp.dll -out:gobject-intptr-ctor-verifier.exe GObjectIntPtrCtorVerifier.cs
Making all in Hyena
/bin/bash: -c: line 13: syntax error: unexpected end of file

这个单一的改变怎么会导致这个以及如何调试这个问题?如何知道bash试图解释哪个文件?我在这里不知所措。

2 个答案:

答案 0 :(得分:2)

我尝试跟踪执行的命令。也许make可以修改为更详细。否则我建议strace

original_command='make all' # or whatever it was you executed

strace -s2000 -eexecve -o/tmp/make.commands -f $original_command

然后查看文件/tmp/make.commands,搜索bash,特别是搜索13行的内联shell脚本。

答案 1 :(得分:0)

很高兴你解决了你的问题。在更一般的情况下,此错误和其他类似错误通常是由进入Makefile的Automake文件中的语法错误引起的。有时会报告Makefile中的行号,因此您可以检查生成的Makefile;在你的情况下,它不是。

make -n可以帮助打印make执行的每个命令而不实际执行它。