【问题标题】:'OpenCvSharp.NativeMethods' threw an exception. Unable to load shared library 'OpenCvSharpExtern' or one of its dependencies., Ubuntu 18.04'OpenCvSharp.NativeMethods' 抛出异常。无法加载共享库“OpenCvSharpExtern”或其依赖项之一。,Ubuntu 18.04
【发布时间】:2020-07-11 22:45:46
【问题描述】:

在 windows 环境中运行此应用程序时,我在我的 .net core 3.0 应用程序中使用了 OpenCvSharp 库,该应用程序运行时没有任何问题。当在 ubuntu 18.04 中运行的 docker 部署和托管相同的应用程序时,会发生以下异常:

System.DllNotFoundException: Unable to load shared library 'OpenCvSharpExtern' or one of its dependencies.

我已经安装了以下在 ubuntu 环境中运行 OpenCvSharp4 所需的包 (nuget):

  • OpenCvSharp4
  • OpenCvSharp4.runtime.ubuntu.18.04-x64

当使用以下命令检查 libOpenCvSharpExtern.so 库的依赖关系时:

ldd libOpenCvSharpExtern.so

一些依赖程序集丢失了,所以我已经安装了所有必要的包,这些包在下面的 GitHub 线程中提到,它报告了相同的确切问题:

https://github.com/shimat/opencvsharp/issues/889

但仍然发现一些依赖项缺失,这些程序集名称如下:

  • libavcodec.so.57 => 未找到
  • libavformat.so.57 => 未找到
  • libavutil.so.55 => 未找到
  • libswscale.so.4 => 未找到
  • libjpeg.so.8 => 未找到

我还尝试安装以下软件包“libjpeg62-turbo-dev”和“libavcodec-extra57”来修复“未找到”程序集。但是问题还是出现了。

任何有关如何解决此问题的建议将不胜感激。

【问题讨论】:

  • 你有没有设法解决这个问题?谢谢。
  • @HannesSachsenhofer 你有没有设法解决这个问题......?如果有答案,将不胜感激。
  • @alexts 如果我没记错的话:是的。我将使用我们当前的设置发布答案。

标签: docker google-kubernetes-engine ubuntu-18.04 asp.net-core-3.0 opencv4


【解决方案1】:

我们遇到了同样的问题。经过大量实验后,我们让它使用以下设置(Docker):

csproj

<Project Sdk="Microsoft.NET.Sdk">
  <PropertyGroup>
    <TargetFrameworks>netstandard2.0;net472</TargetFrameworks>
  </PropertyGroup>
  <ItemGroup>
    <PackageReference Include="OpenCvSharp4" Version="4.4.0.20200725" />
    <PackageReference Include="OpenCvSharp4.runtime.debian.10-amd64" Version="4.3.0.20200424" />
    <PackageReference Include="OpenCvSharp4.runtime.win" Version="4.4.0.20200725" />
    <PackageReference Include="System.Drawing.Common" Version="4.7.0" />
  </ItemGroup>
</Project>

dockerfile

[...]

FROM mcr.microsoft.com/dotnet/core/aspnet:3.1
[...]

RUN apt-get update && apt-get install -y \
    apt-utils \
    libgdiplus \
    libc6-dev \
    libgtk2.0-dev \
    libtbb-dev \
    libatlas-base-dev \
    libvorbis-dev \
    libxvidcore-dev \
    libopencore-amrnb-dev \
    libopencore-amrwb-dev \
    libavresample-dev \
    x264 \
    v4l-utils \
    libwebp-dev \
    tesseract-ocr \
    libtesseract-dev \
    libleptonica-dev \
    libtiff-dev \
    libavcodec-dev \
    libavformat-dev \
    libswscale-dev \
    libdc1394-22-dev \
    libxine2-dev \
    libv4l-dev
RUN apt-get clean && rm -rf /var/lib/apt/lists/*

[...]

不幸的是,我不完全确定许多 apt 软件包中的哪一个成功了,我很高兴它现在可以工作;)

【讨论】:

  • + libjpeg62(在我的情况下)
猜你喜欢
  • 2019-12-02
  • 2021-06-15
  • 2022-10-24
  • 1970-01-01
  • 1970-01-01
  • 2023-02-16
  • 1970-01-01
  • 2012-09-15
  • 2018-08-21
相关资源
最近更新 更多