【发布时间】:2020-11-08 16:35:21
【问题描述】:
我正在使用 .net core c# 代码使用 Tesseract 从图像中提取文本。我已使用 NuGet 包命令将 Tesseract 3.3.0 添加到我的项目中。这段代码在我的 Windows 机器上运行良好。但是,这在 Linux 机器上失败了。在互联网上研究后,我知道我需要链接 liblept 和 libtesseract 文件。因此我在下面做链接文件。
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