Make:尽管使用了tab,但缺少分隔符错误

时间:2013-03-12 16:18:43

标签: ubuntu makefile gedit

这让我发疯,这是我的文字复制粘贴代码,Gedit使用的标签宽度为8.它仍然抱怨缺少分隔符。我完全按照手动语法。我没有使用某种自动将标签更改为空格的设置。

Tubes : TubesWithVaryingRadiusAndColors.cxx
    gcc -c TubesWithVaryingRadiusAndColors.cxx 

在上面的代码中它似乎改变了4​​个空格中的选项卡(我可以看到,通过尝试选择它,在输入窗口中它是一个字符,但如果你检查它,它将是4个空格)。 / p>

编辑:

如果我使用leafpad,它可以工作。 Gedit做错了什么?

hexdump是:

0000000 494c 4442 5249 3d20 2f20 7375 2f72 696c
0000010 2f62 7476 2d6b 2e35 2f38 540a 6275 7365
0000020 3a20 5420 6275 7365 6957 6874 6156 7972
0000030 6e69 5267 6461 7569 4173 646e 6f43 6f6c
0000040 7372 632e 7878 090a 6367 2063 632d 5420
0000050 6275 7365 6957 6874 6156 7972 6e69 5267
0000060 6461 7569 4173 646e 6f43 6f6c 7372 632e
0000070 7878 2d20 2049 7b24 494c 4442 5249 007d
000007f

2 个答案:

答案 0 :(得分:0)

尝试在hexdump上投放Makefile。然后,您将完全确定标签的实际编码方式。

答案 1 :(得分:0)

打开gedit的编辑器偏好设置,即Edit->Preferences->Editor,取消选中Insert spaces instead of tabs

尝试在Makefile中再次插入标签字符,这次应该可以使用。

顺便说一句,8个空格的标签宽度不等于hard-tabGedit似乎会自动将标签字符替换为8 spaces,但Makefile期望标签字符出现在规则的每个recipe的开头。

如果你使用像vim这样的编辑器,它会自动注意插入硬标签来指定规则,你可以使用 Ctrl-V-Tab <手动插入标签/ p>