Missing Separator Error(收集)

本文详细解析了在使用GCCE编译器时遇到的MissingSeparatorError错误,通常由GNU C/C++ ARM编译器路径设置不当引起。文章提供了检查和修正环境变量的方法,确保arm-none-symbianelf-g++命令可执行,从而解决编译错误。

http://symbian.compactbyte.com/2008/05/missing-separator-error.html

Missing Separator Error

By Yohanes Nugroho on May 9, 2008 10:49 PM | 1 Comment | No TrackBacks

Quite many people found the message "Missing Separator Error" when building GCCE target. Usually this happens because the path to GNU CSL ARM compiler is not correct. The line that causes the problem is usually generated by cl_bpabi.pm, in subGCCLibPath. The subroutine will try to execute this:

arm-none-symbianelf-g++ -print-libgcc-file-name

to find the path to GCC include files.

So in case anyone else is having the same "missing separator. Stop",
just check if you can run:

arm-none-symbianelf-g++

If you can not run it, then somehow "arm-none-symbianelf-g++.exe" is not
on the path or the path that you set in the system is wrong/mistyped.

评论:这个是根本的原因,设置环境变量。

 

http://blog.youkuaiyun.com/ss88009/archive/2010/01/28/5265674.aspx

原创  "missing separator. Stop"问题的解决 收藏

今天用GCCE编译工程师,爆出了

\symbian\S60_3rd_MR_2\EPOC32\BUILD\symbian\Carbide\workspace\HTTPClientExample\group\HTTPCLIENTEXAMPLE\GCCE\HTTPCLIENTEXAMPLE.GCCE:85: *** missing separator.  Stop.
make: *** [TARGETHTTPCLIENTEXAMPLE] Error 2

的错误。

后来安装了CSL Toolchain (GCCE),问题就解决了。

CSL Toolchain (GCCE)的路径为:

开始 --> S60 Developer Tools --> 3rd Edition SDK --> 1.1_MR_X --> Tools --> CSL Toolchain (GCCE) - Install

不过现在只知其然不知其所以然,至于到底是为什么可以编译通过了还不知道,先做下标记,希望我的帖子能够帮到有类似问题的同行。

 

评论:这种处理方法并不好,以前有装过,只是重装了系统不想再装的话是很郁闷的。

 

Re: 编译gcc时遇到了问题为: *** missing separator. Stop - 2008-09-11 09:26

Quote Originally Posted by Dynasty1215 View Post

加了以后,把命令行关掉再重开个,输入path命令,看有没有,
如果有clean下再重新编译

重复做了几次, 现在成功了, 非常感谢Dynasty1215

评论:

1.这种处理方法是最好的,只需要设置下CSL Toolchain 的路径到环境变量,并且使环境变量生效。

2.如果是Carbide IDE的话,那就不光是在IDE上Clean了,需要手动Clean

转载于:https://www.cnblogs.com/yaoliang11/archive/2011/02/16/1956120.html

<think>首先,用户的问题是:“我想查找出现'missing separator. Stop.'错误的原因及解决方案 请问missing separator. Stop.错误原因及解决方案”。用户提供了三个引用:[1]、[2]、[3]。 我需要根据系统级指令处理: - 数学表达式用 $...$ 格式(但这里可能不涉及数学,所以忽略)。 - 独立公式用 $$...$$(同样可能不适用)。 - LaTeX语法正确。 - 使用中文回答。 - 生成相关问题。 - 在回答中引用的段落末尾添加引用标识,如 [^1]。 用户提供了引用: - [1]:Makefile:99: *** missing separator. Stop.错误:通常表示Makefile语法错误,如缩进不正确或缺少冒号等。解决方案未给出。 - [2]:Makefile:8: *** missing separator. Stop.错误:原因是tab格式错误。命令必须以tab开头,而变量定义等不能以tab开头。 - [3]:FFmpeg错误,涉及git reset --hard,但似乎是另一个错误的引用。 用户说:“上述引用仅供参考,并不是用户真正的需求,请尽可能多的参考用户上一次的问题和你的回答。” 但我没有上下文中有“用户上一次的问题和你的回答”。在这个对话中,这是第一个用户消息。所以,我应基于当前消息和引用回答。 关键错误:"missing separator. Stop." 在编译或Makefile环境中常见。 从引用中提取原因: - 根据 [1]:通常由于Makefile语法错误,如缩进不正确或缺少冒号。 - 根据 [2]:具体是tab格式错误。命令必须以tab开头,而变量定义等不能以tab开头。 - [3] 似乎不直接相关,提到FFmpeg错误,但解决方法是git reset,可能涉及到代码仓库问题。 所以,错误原因集中在Makefile的tab使用错误。 解决方案: - 确保Makefile中的命令部分(recipe)以tab字符开头,而不是空格。 - 变量定义和函数调用等不应以tab开头。 - 编辑Makefile文件,使用制表符(tab)而不是空格来缩进命令。 用户的问题是关于一般性的"missing separator. Stop."错误,引用主要针对Makefile,所以我应聚焦在Makefile错误上。 回答结构: - 使用中文回答。 - 结构清晰,逐步解决问题。 - 在引用的部分添加引用标识。 - 最后生成相关问题。 大纲响应: 1. **解释错误原因:** 基于引用描述错误原因。 2. **提供解决方案:** 逐步指导如何解决。 3. **添加引用标识:** 在相关句子末尾。 4. **生成相关问题:** 在最后一部分。 确保回答真实可靠:基于标准Makefile知识。 最终响应格式: - 先回答问题。 - 然后“§§相关问题§§”部分列出相关问题。 现在,构建回答。 </think>### missing separator. Stop. 错误原因及解决方案 在编译或构建项目中(特别是使用 Makefiles 时),您遇到的 `missing separator. Stop.` 错误通常是由于 Makefile 文件中的语法错误引起的。Makefile 是一种用于自动化编译的脚本文件,其规则对缩进和分隔符格式要求严格。以下我将基于您提供的引用信息,逐步解释错误原因和提供解决方案。引用内容来自类似问题的经验总结,我会在相关句子末尾添加引用标识以注明来源。 #### 错误原因 - **主要原因是 Tab 格式错误**:在 Makefile 中,命令(如编译或构建指令)必须以一个制表符(Tab)开头,而不是空格或其他字符。如果使用了空格或混合缩进,Make 工具就会报错。同时,变量定义(如 `CC = gcc`)或内建函数(如 `$(error "strings")`)不能以 Tab 开头,否则会被误识别为命令,引发 `missing separator` 错误 [^2]。 - **常见触发场景**:这种错误常出现在编辑 Makefile 时人为失误,例如: - 使用空格代替 Tab 来缩进命令部分。 - 在非命令区域意外添加了 Tab 字符。 - 文件编码错误或编辑器自动转换 Tab 为空格(如 VS Code 或 Vim 默认设置)。 - 其他语法问题,如缺少冒号(:)在规则定义中,但 Tab 错误是最常见的原因 [^1]。 #### 解决方案 解决此错误的关键是检查并修正 Makefile 的缩进格式。以下是逐步解决方案(确保使用纯文本编辑器操作 Makefile 文件): 1. **检查出错位置**: - 错误消息如 `Makefile:99: *** missing separator. Stop.` 中的行号(例如第 99 行)指示问题发生的具体位置。打开 Makefile 文件,导航到该行 [^1]。 2. **验证 Tab 使用**: - **命令必须以 Tab 开头**:确保规则(如编译指令)的缩进使用 Tab 字符,而不是空格。例如: ``` target: cc -o output input.c # 正确:缩进必须是一个 Tab(显示为 > 4 个空格) ``` 如果您在编辑器中看到缩进是空格(如多个空格键),手动替换为一个 Tab。 - **非命令区域不能有 Tab**:检查变量定义或函数调用是否意外以 Tab 开头。例如: ``` CC = gcc # 正确:无缩进或仅空格 $(info "Building...") # 正确:无 Tab 缩进 ``` 如果这些行有 Tab,删除 Tab 符 [^2]。 3. **编辑器设置调整**: - 在 VS Code 或 Vim 等编辑器中,禁用“自动转换 Tab 为空格”功能。方法: - VS Code: 右下角点击“空格”(Spaces),选择“Convert Indentation to Tabs”。 - Vim: 运行 `:set noexpandtab` 命令。 - 使用命令检查 Tab:在终端运行 `cat -A Makefile | head -n 99`(替换 99 为错误行号),如果看到 `^I` 表示 Tab,空格则显示为 `$`。确保只有命令行有 `^I` [^2]。 4. **测试和验证**: - 修正后保存文件,重新运行 make 命令(如 `make` 或 `make -B`)。 - 如果错误来自外部依赖(如您在引用中提到的 FFmpeg 错误),尝试更新代码库:`git reset --hard` 可恢复文件到原始状态,避免本地修改导致的 Tab 问题 [^3]。 5. **预防措施**: - 使用 Makefile 语法高亮插件(如 VS Code 的 Makefile 扩展)自动检测缩进错误。 - 编写规则时,分清目标、依赖和命令部分。例如: ``` target: dependencies # 正确:无缩进 command1 # 正确:Tab 开头 command2 # 正确:Tab 开头 ``` 如果以上步骤无法解决,错误可能涉及更复杂的语法问题(如缺少冒号或括号错误),建议分享具体的 Makefile 片段以便进一步分析。引用中的解决方案基于常见实践,能覆盖大多数情况 [^1][^2]。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值