/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/lex命令执行失败,退出码为1。

5

我正在尝试将一个文件包含在我的资源包中,该文件包含以下内容:

LeadPunc="({[`'
TrailPunc=}:;-]!?`,.)"'
NumLeadPunc=#({[@$
NumTrailPunc=}):;].,%
Operators=*+-/.:,()[]
Digits=0123456789
Alphas=abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ
*extra line*

The files is called:

eng.cube.lm

我收到的错误信息是:
IExpenseReporter/tessdata/eng.cube.lm:6: premature EOF
Command /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/lex failed with exit code 1

这个文件是与最新版本的Tesseract(OCR)一起使用的。有人知道是什么导致了这个错误以及如何修复它吗?


我有同样的问题,你解决了吗?请回答我。 - iOS developer
3个回答

11
确保在将tessdata文件夹添加到项目时选择“创建文件夹引用”选项。
根据文档
请注意:当前此库需要将tessdata文件夹链接为引用文件夹而不是符号组。如果Tesseract在您自己的项目中找不到语言文件,则可能是因为您将tessdata文件夹创建为符号组而不是引用文件夹。如果您正确地执行了操作,它应该如下所示:
请注意,tessdata文件夹有一个蓝色图标,表示它作为引用文件夹导入,而不是符号组。
删除当前文件夹,然后将其重新添加为文件夹引用应该可以解决问题。

1
XCode认为这是一个lex文件,并试图通过调用lex来处理它。但是,lex发现有不平衡的引号,因此出现了文件过早结束的情况。你应该尝试显式地调用指定的工具。

我遇到了相同的问题,你能帮我解决一下吗?我无法理解你的答案。 - Peer Mohamed Thabib
1
我从未使用过tesseract,因此不确定如何处理该文件。但为避免错误,请停用词法规则或将文件标记为不属于您的项目。 - Matthias

0

我遇到了这个问题,后来发现将语言压缩包中的“tessdata”文件夹复制到项目目录而不是Xcode中可以解决问题。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接