今天搞了一台compaq510,T1500 1g内存 ,装了个 FreeDos玩玩DOS。问题出来了
1:"makefile:10: *** missing separator. Stop."
在DJGPPS网站上找到答案:
22.17 Make说“missing separator”
Q:当我调用make,它拒绝做任何事情,并打印一个神秘的消息:“生成文件:10:***遗漏分隔停止。” 现在什么样的借口是什么?
一:与大多数其他DOS做这在规则的命令开始接受任何空白字符程序,GNU的make坚持认为,每一个这样的行以一个标签。(大多数其他Unix Make程序也需要TAB,Posix标准也需要它。)确保在错误消息(在这种情况下,第10行)中打印其号码的行以TAB开头。
从版本3.78开始,GNU Make打印一条消息,提示可能的SPACEs-vs-TAB问题,如下所示:
***缺少分隔符(你是说TAB而不是8个空格?)。停止。
如果您需要修复使用空格的Makefile文件,转换前导空格为制表符的一种方式是使用unexpand
程序从GNU文本实用程序包(v2gnu/txt20b.zip
从DJGPP站点)。另一种可能性是用RHIDE并从菜单栏中选择Edit->Compact Text
dos里面的编辑器可以使用空格自动替换TAB,因此即使使用此类编辑器编辑Makefile无法工作。
另外,较为少见,上述错误信息的原因是,如果你使用静态模式规则(以%
字符)不正确。仔细阅读文档随附的文档并尝试找到错误。
本来可以用VIM解决这个问题,但是VIM不知道怎么的在FREEdos下不能写文件,以前在dos6.22下都可以的。
新版本的MAKE 据说可以使用 :(没试验)
.RECIPEPREFIX +=