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

Ubuntu Make:缺少分隔符错误,尽管使用了tab,ubuntu,makefile,gedit,Ubuntu,Makefile,Gedit,这让我抓狂,这是我的文字复制粘贴代码,Gedit使用的标签宽度为8。它仍然抱怨缺少一个分隔符。我完全遵循了手动语法。我没有使用某种自动将选项卡更改为空格的设置 Tubes : TubesWithVaryingRadiusAndColors.cxx gcc -c TubesWithVaryingRadiusAndColors.cxx 在上面的代码中,它似乎在4个空格中更改了选项卡(我可以看到,通过尝试选择它,在键入窗口中它是一个字符,但是如果您选中它,它将是4个空格) 编辑: 如果我使

这让我抓狂,这是我的文字复制粘贴代码,Gedit使用的标签宽度为8。它仍然抱怨缺少一个分隔符。我完全遵循了手动语法。我没有使用某种自动将选项卡更改为空格的设置

Tubes : TubesWithVaryingRadiusAndColors.cxx
    gcc -c TubesWithVaryingRadiusAndColors.cxx 
在上面的代码中,它似乎在4个空格中更改了选项卡(我可以看到,通过尝试选择它,在键入窗口中它是一个字符,但是如果您选中它,它将是4个空格)

编辑:

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

hextump是:

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

尝试在
Makefile
上运行
hextump
。然后,您将完全确定选项卡的实际编码方式。

打开
gedit
的编辑器首选项,即
编辑->首选项->编辑器
,取消选中
插入空格而不是选项卡

再次尝试在
Makefile
中插入制表符,这次应该可以

顺便说一句,8个空格的制表符宽度并不等同于硬制表符
Gedit
似乎自动将制表符替换为
8个空格
,但
Makefile
希望制表符出现在规则的每个
配方的开头


如果您使用的是像
vim
这样的编辑器,它会自动注意插入用于指定规则的硬选项卡,并且您可以使用Ctrl-V-tab手动插入一个选项卡,就像我说的,它实际上是一个选项卡,我不知道是什么类型。“插入空格而不是制表符”已取消选中。另外,我应该使用哪个vim?我试过vim athena和vim,但仍然找不到程序。@PatronBernard,你能把
od-t的输出发布到一个生成文件中吗,因为它更容易解释?顺便说一句,你的十六进制转储与我在Makefile中看到的几乎相同内容的十六进制转储不匹配,出于某种原因,可能是字符集不同?我想是的,Gedit会做这样的事情很奇怪。我甚至从未碰过/修改过它。非常令人沮丧。我想我要换成维姆,对我来说很好。结尾的空字符有点奇怪,不过正如我所说的,对我来说效果很好(
make:**没有规则使目标“TubesWithVaryingRadiusAndColors.cxx”成为“Tubes”所需要的。停止。
)。