Я пытаюсь использовать DLLImport в своем проекте Mono Mac, чтобы использовать свой собственный .dylib, но получаю исключение DllNotFoundException. Я предполагаю, что это как-то связано с моим .dylib, поскольку я могу сделать это с существующими файлами .dylib, такими как libmojoshader.dylib.
Вот как я использую DLLImport
[DllImport("libtestDylib.dylib")]
static extern int libsum(int a, int b);
Затем я вызываю функцию libsum, чтобы проверить, работает ли она.
Я обнаружил, что запуск приложения через терминал с помощью команды MONO_LOG_LEVEL="debug" MONO_LOG_MASK="dll" mono myGame.exe — отличный способ отладки подобных проблем, однако я не могу запустить мое приложение .exe. Я пытался использовать как .exe в папке сборки, так и файл в .app/contents/MonoBundle. исследование.
Последний файл выдает "Файл не содержит допустимого образа CIL", а два других "Нет файла Info.plist в комплекте приложения или нет NSPrincipalClass в файле Info.plist".
Итак, я бы предположил, что первым шагом является запуск приложения через терминал, чтобы получить правильную отладочную информацию о том, почему мой .dylib не может быть найден.
Созданный мной .dylib представляет собой пустую библиотеку BSD C, созданную в XNA4.
Изменить
Я даже не могу заставить работать существующие dylibs.