C++ Can';t在c+中创建tesseract::TessBaseAPI的实例+;

C++ Can';t在c+中创建tesseract::TessBaseAPI的实例+;,c++,tesseract,C++,Tesseract,我在macos上使用vcpkg安装了tesseract和opencv,一切都很顺利 现在,我尝试使用cmake制作一个简单的tesseract项目,但是: tesseract::TessBaseAPI text_recognizer; 抛出: libc++abi.dylib:以类型为的未捕获异常终止 std::runtime_错误:未能为构造collate_byname::collate_byname 然后我把它改成: tesseract::TessBaseAPI *text_recogniz

我在macos上使用vcpkg安装了tesseract和opencv,一切都很顺利

现在,我尝试使用cmake制作一个简单的tesseract项目,但是:

tesseract::TessBaseAPI text_recognizer;
抛出:

libc++abi.dylib:以类型为的未捕获异常终止 std::runtime_错误:未能为构造collate_byname::collate_byname

然后我把它改成:

tesseract::TessBaseAPI *text_recognizer;
它不会抛出任何错误,但是如果我尝试用

text_recognizer = new tesseract::TessBaseAPI();
我和以前一样:

libc++abi.dylib:以类型为的未捕获异常终止 std::runtime_错误:未能为构造collate_byname::collate_byname

如果有人能给我指出解决问题的正确方向就足够了

编辑:

正在运行cmake。。抛出警告:

ld: warning: direct access in function 'unsigned long 
std::__1::__str_find_first_of<char, unsigned long, 
std::__1::char_traits<char>, 18446744073709551615ul>(char const*, 
unsigned long, char const*, unsigned long, unsigned long)' from file 
'../vcpkg/installed/x64- 
osx/debug/lib/libopencv_cored.a(logtagconfigparser.cpp.o)' to global 
weak symbol 'std::__1::char_traits<char>::eq(char, char)' from file 
'CMakeFiles/startProject.dir/main.cpp.o' means the weak symbol cannot 
be overridden at runtime. This was likely caused by different 
translation units being compiled with different visibility settings.

我找不到答案,所以我开始随机尝试,并添加

set(CMAKE_BUILD_TYPE "RELEASE")

出于某种原因解决了此问题。

嘿,您的错误消息似乎已被切断:
无法为
构建-原因是什么?一般来说,许多类似的问题都建议尝试设置
setlocale(LC_ALL“”)
,但是从您那里获得完整的错误消息将有助于获得正确的解决方案。它没有说明原因,这是完整的错误消息!令人沮丧的…:(再多一点上下文就会有帮助。您使用的是哪种操作系统,您是如何构建tesseract的(您也是在其他平台上构建的)还是安装的(例如,使用
brew安装
)?您可以在CMake:
set(CMake_EXE_LINKER_FLAGS“${CMake_EXE_LINKER_FLAGS}-stdlib=libc++-lc++abi
当然!我刚刚删除了整个构建文件夹,重新运行了cmake..&&make并再次运行了项目,但我遇到了相同的错误!我正在编辑问题并添加我的CMakeList.txt@adem
set(CMAKE_BUILD_TYPE "RELEASE")