makefile:1: warning: NUL character seen; rest of line ignored makefile:1: *** missing separator. Stop.
时间: 2023-06-29 22:02:07 浏览: 726
这个错误通常是因为 Makefile 文件中的某一行包含了不可见字符,比如空格或制表符。你需要打开 Makefile 文件,并将该行中的不可见字符删除或替换为可见字符,然后保存并重新运行 make 命令。如果你无法找到不可见字符,可以尝试重新编写该行,或者将整个 Makefile 文件复制到一个新文件中。
相关问题
Makefile:1: *** missing separator. Stop.
在Makefile:1: *** missing separator. Stop.错误中,"missing separator"表示缺少分隔符。这个错误通常发生在Makefile文件的第一行或第一个命令行中。
有几个可能的解决方法可以尝试:
1. 确保使用的分隔符是TAB键而不是空格。在Makefile中,只有命令所在的行才能以TAB开头,其他地方如变量定义、赋值等都不能以TAB开头。如果你的Makefile中使用了空格代替TAB键,将其替换为TAB键即可。
2. 检查Makefile文件的编码格式是否正确。有时候,如果Makefile文件的编码格式不是utf-8,并且带有BOM标记在文件头,会导致这个错误。你可以使用xxd命令查看Makefile文件的编码格式,如果发现是utf-8,并带有BOM标记,可以去掉BOM标记即可。
3. 如果排除了TAB用空格代替的问题和编码格式的问题后,还是存在错误,那么可能是其他问题导致的。你可以检查Makefile文件中的其他语法错误或者其他配置问题。
总结一下解决方法:
1. 确保使用TAB键作为分隔符,而不是空格。
2. 检查Makefile文件的编码格式,确保是utf-8,并且没有BOM标记。
3. 检查Makefile文件中的其他语法错误或配置问题。
希望以上解决方法可以帮助你解决这个错误。<span class="em">1</span><span class="em">2</span><span class="em">3</span>
#### 引用[.reference_title]
- *1* *3* [Makefile missing separator. Stop.怎么解决](https://blog.csdn.net/limanjihe/article/details/52231243)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"]
- *2* [【Linux C++】Makefile:1: *** missing separator. Stop.(亲测已解决)](https://blog.csdn.net/weixin_39626452/article/details/103364523)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"]
[ .reference_list ]
makefile:13: *** missing separator. stop.
在Makefile中遇到"makefile:13: *** missing separator. stop." 错误通常表示在指定的地方缺少了一个分隔符,比如冒号(:)或者空格,这是Makefile语言用来组织规则和目标的标准语法结构的一部分。Makefile是一种用于自动化构建的文本文件,它依赖于特定的格式来定义如何从源文件生成目标文件。
错误的具体位置(第13行)表明问题很可能出现在那一行的命令或指令之间。你需要检查这行是否正确地包含了两个部分:一个命令(如`target:`)和一个关联的任务列表(如`dependency command`),中间应该有一个分隔符。
解决这个问题的步骤包括:
1. 检查第13行的内容,确保每条命令都有正确的分隔符。
2. 确保每个规则(recipe)都是 `target : dependencies commands` 的形式,例如 `clean : rm -rf *.o *.a main`。
3. 如果有多个命令,每个命令之间需要用一个空格或制表符作为分隔。
如果在确认语法无误后仍然出错,可能是某个特殊字符导致了解析问题,需要查看Makefile中的特殊字符并适当调整。
阅读全文