C++ Can';t在c+中创建tesseract::TessBaseAPI的实例+;
我在macos上使用vcpkg安装了tesseract和opencv,一切都很顺利 现在,我尝试使用cmake制作一个简单的tesseract项目,但是: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
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")