DllNotFoundException with DllImport in Mono on Mac: wrong architecture

Я пытаюсь взаимодействовать с библиотекой 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-битные.

8
задан ken 30 January 2012 в 05:38
поделиться