Вызов .so библиотеки в C#

Написал небольшую C++ библиотеку с экспортируемым методом. Собираю ее в Dll и метод вызывается без проблем, но мне нужно, чтобы программа работала на Linux, поэтому я собираю библиотеку в Shared Object с помощью msys2 mingw64, но как бы я не пытался, при вызове метода я получаю исключение:

Unable to load shared library 'test.so' or one of its dependencies. In order to help diagnose loading problems, consider setting the LD_DEBUG environment variable: libtest.so: cannot open shared object file: No such file or directory

Разумеется, я запускаю программу в WSL и указываю активную директорию к папке с библиотекой

[DllImport("test.so", CallingConvention = CallingConvention.Cdecl, CharSet = CharSet.Ansi)]
    public static extern IntPtr VerifyCert();

Ответы (1 шт):

Автор решения: alvahtin

Может, всё-таки следует скомпилировать компилятором gcc? Пробовали создать программу с помощью msys2 mingw64 и запустить её в Linux? И не забудьте указать в экспортируемых функциях extern "С":

extern "С" char* VerifyCert()
{
....
}

И компиляция с флагом -shared

→ Ссылка