Я пытаюсь взаимодействовать с библиотекой ImageMagick в Mono на Mac. Я установил библиотеку ImageMagick с помощью MacPorts и проверил, что файл libMagickWand.dylib существует в каталоге /opt/local/lib. Я также создал мягкую ссылку на этот файл в каталоге /usr/local/lib.
Вот мой DllImport statement:
[DllImport("libMagickWand", EntryPoint = "MagickWandGenesis")]
static extern void WandGenesis();
Вот мой App.config:
И, при вызове WandGenesis();
, я получаю DllNotFoundException
, с сообщением 'libMagickWand'.
Я прочитал эту страницу и думаю, что следую всем правилам. Есть ли что-нибудь еще, что я могу попробовать?
Обновление:
Я запустил .exe с MONO_LOG_LEVEL=debug. Вот соответствующая информация:
Mono: DllImport error loading library 'dlopen(/opt/local/lib/libMagickWand.5.dylib, 9):
no suitable image found.
Did find: /opt/local/lib/libMagickWand.5.dylib: mach-o, but wrong architecture'.
неправильная архитектура: Я использую Snow Leopard в 32-битном режиме и всегда так делал. Я установил ImageMagick с MacPorts, и я установил Mono с Mac пакетом от mono-project.com. Что было бы скомпилировано при другой архитектуре?
Обновление:
Кажется, я нашел свою проблему:
MacBook-Pro:lib ken$ lipo -info libMagickWand.5.dylib
Non-fat file: libMagickWand.5.dylib is architecture: x86_64
Обновление:
... но у меня все еще проблемы. Я не могу понять, как скомпилировать ImageMagick с архитектурой i386. Когда я пытаюсь сделать это с помощью флагов, он жалуется на другие библиотеки, которые были скомпилированы как 64-битные.