Как запустить OpenCvSharp в Ubuntu 18.04? - PullRequest
0 голосов
/ 04 января 2019

У меня проблема с запуском OpenCvShare в Ubuntu Linux. Он все время говорит, что libOpenCvSharpExtern не найден.

У меня проблема с запуском OpenCvSharp на моем Ubuntu 18.04.1 x64. Я создал решение .NET Core / Standard (Standard - это проект библиотеки, Core - это бегун). Проект библиотеки ссылается на пакеты Nuget: OpenCvSharp4 (4.0.0.20181225) OpenCvSharp4.runtime.ubuntu.18.04-x64 (4.0.0.20181225).

Затем, после удачной компиляции, я опубликовал проект runner, используя:

dotnet publish -c Release -r ubuntu.18.04-x64

Когда я запускаю исполняемый файл в Ubuntu, выдается следующее сообщение:

Unhandled Exception: OpenCvSharp.OpenCvSharpException: Failed to create VideoCapture System.TypeInitializationException: The type initializer for 'OpenCvSharp.NativeMethods' threw an exception. OpenCvSharp.OpenCvSharpException: Unable to load shared library 'OpenCvSharpExtern' or one of its dependencies. In order to help diagnose loading problems, consider setting the LD_DEBUG environment variable: libOpenCvSharpExtern: cannot open shared object file: No such file or directory ---> System.DllNotFoundException: Unable to load shared library 'OpenCvSharpExtern' or one of its dependencies. In order to help diagnose loading problems, consider setting the LD_DEBUG environment variable: libOpenCvSharpExtern: cannot open shared object file: No such file or directory

Файл libOpenCvSharpExtern.so находится по тому же пути, что и исполняемый файл, я также скопировал его в usr / local / lib, и id не помог. Приложение предназначено для обнаружения лиц на основе канала камеры.

1 Ответ

0 голосов
/ 08 января 2019

Хорошо, у меня наконец-то все получилось. Проблема была в пути включения. Когда вы выполняете ldd libOpenCvSharpExtern.so из терминала в пути, в котором находится lib, он выведет все библиотеки, на которые ссылается этот. Изначально у меня был полный список «не найденных» ссылок. Все отсутствующие библиотеки уже были установлены в /usr/local/lib. Оказалось, что этот путь не является стандартным путем, по которому система ищет библиотеки. Ссылка на вопрос на форуме ubuntu

После того, как я добавил export LD_LIBRARY_PATH="/lib:/usr/lib:/usr/local/lib" переменная окружения и перезапуск системы, все начало работать, и использование ldd в библиотеке libOpenCvSharpExtern.so ясно показало, что все библиотеки были найдены.

...