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