【问题标题】:How to link liblept and libtesseract files in linux如何在 linux 中链接 liblept 和 libtesseract 文件
【发布时间】:2020-11-08 16:35:21
【问题描述】:

我正在使用 .net core c# 代码使用 Tesseract 从图像中提取文本。我已使用 NuGet 包命令将 Tesseract 3.3.0 添加到我的项目中。这段代码在我的 Windows 机器上运行良好。但是,这在 Linux 机器上失败了。在互联网上研究后,我知道我需要链接 libleptlibtesseract 文件。因此我在下面做链接文件。

ln -s /usr/lib/x86_64-linux-gnu/liblept.so.5 /xxx/yyy/zzzz/project/x64/liblept1753.so
ln -s /usr/lib/x86_64-linux-gnu/libtesseract.so.4 /xxx/yyy/zzzz/project/x64/libtesseract3052.so

但是我仍然遇到错误。

+++++++StackTrace+++++++
   at System.RuntimeMethodHandle.InvokeMethod(Object target, Object[] arguments, Signature sig, Boolean constructor, Boolean wrapExceptions)
   at System.Reflection.RuntimeConstructorInfo.Invoke(BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture)
   at System.RuntimeType.CreateInstanceImpl(BindingFlags bindingAttr, Binder binder, Object[] args, CultureInfo culture)
   at InteropDotNet.InteropRuntimeImplementer.CreateInstance[T]()
   at Tesseract.Interop.TessApi.Initialize()
   at Tesseract.Interop.TessApi.get_Native()
   at Tesseract.TesseractEngine..ctor(String datapath, String language, EngineMode engineMode, IEnumerable`1 configFiles, IDictionary`2 initialOptions, Boolean setOnlyNonDebugVariables)
   at Controller.OCRImage(String image_path, Int32 page_id, String page_img_path) in Controller.cs:line 710
+++++++InnerException+++++++
System.Exception: dlsym: /xxx/yyy/zzzz/project/x64/libtesseract3052.so: undefined symbol: TessPDFRendererCreateTextonly
   at InteropDotNet.UnixLibraryLoaderLogic.GetProcAddress(IntPtr libraryHandle, String functionName)
   at InteropDotNet.LibraryLoader.GetProcAddress(IntPtr dllHandle, String name)
   at InteropRuntimeImplementer.TessApiSignaturesInstance.TessApiSignaturesImplementation..ctor(LibraryLoader loader)
+++++++Data+++++++
System.Collections.ListDictionaryInternal
+++++++Source+++++++
System.Private.CoreLib
+++++++HResult+++++++
-2146232828
+++++++TargetSite+++++++
System.Object InvokeMethod(System.Object, System.Object[], System.Signature, Boolean, Boolean)
+++++++Message+++++++
Exception has been thrown by the target of an invocation.
+++++++HelpLink+++++++

以下是实际错误,不知道如何继续。 我被困在这里,任何帮助将不胜感激。

/xxx/yyy/zzzz/project/x64/libtesseract3052.so: undefined symbol: TessPDFRendererCreateTextonly

【问题讨论】:

    标签: c# linux .net-core tesseract


    【解决方案1】:

    您所做的第一个错误是假装 tesseract 库 4.x 版本是 tesseract 3.x(通过创建符号链接)。这永远不会奏效。 3.x 库已过时,不支持,因此您可以做的最好的事情是将您的应用升级到 4.x/5.x tesseract。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-08-25
      • 2010-11-27
      • 1970-01-01
      • 2019-07-22
      • 2021-09-06
      • 2017-04-07
      相关资源
      最近更新 更多