Я пытаюсь взаимодействовать с библиотекой ImageMagick в Mono на Mac.Я установил библиотеку ImageMagick с MacPorts и убедился, что файл libMagickWand.dylib существует в каталоге / opt / local / lib .Я также создал мягкую ссылку на этот файл в каталоге / usr / local / lib .
Вот мое утверждение DllImport:
[DllImport("libMagickWand", EntryPoint = "MagickWandGenesis")]
static extern void WandGenesis();
Вот мое приложение.config:
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<dllmap dll="libMagickWand" target="/opt/local/lib/libMagickWand.dylib" />
</configuration>
И при вызове 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-битные.