Xcode C ++“没有匹配的成员函数用于调用...”

时间:2014-04-17 17:59:46

标签: objective-c tesseract

我试图在我的Mac应用程序中使用tesseract。因此,我编译了leptonicatesseract,将所有头文件和.a文件复制到我的项目中。

之后我将AppDelegate.m文件重命名为AppDelegate.mm。

现在我试图像这样使用tesseract

#include "baseapi.h"
...
tesseract::TessBaseAPI *tess = new tesseract::TessBaseAPI();
tess->Init([[[NSBundle mainBundle] bundlePath] stringByAppendingString:@"tessdata"], "eng");

不幸的是,在第二行我收到错误:

"No matching member function for call to 'Init'"

我做错了什么?我在编译时犯了错误吗?

这是我编译的bash脚本:bash-script link

1 个答案:

答案 0 :(得分:1)

查看api的一些文档,最佳匹配签名是

int Init (const char *datapath, const char *language)

在你的情况下,你传递了这个

[[[NSBundle mainBundle] bundlePath] stringByAppendingString:@"tessdata"]

返回NSString *,而不是const char ptr

试试这个

tess->Init([[[[NSBundle mainBundle] bundlePath] stringByAppendingString:@"tessdata"] UTF8String], "eng");