我試圖在Mac上與Mono中的ImageMagick庫互操作。我用MacPorts安裝了ImageMagick庫,並且已驗證文件libMagickWand.dylib存在於目錄/opt/local/lib中。我還在目錄/usr/local/lib中創建了該文件的軟鏈接。DllNotFoundException與Mac上的Mono中的DllImport:錯誤的架構
這裏是我的DllImport聲明:
[DllImport("libMagickWand", EntryPoint = "MagickWandGenesis")]
static extern void WandGenesis();
這裏是我的App.config:
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<dllmap dll="libMagickWand" target="/opt/local/lib/libMagickWand.dylib" />
</configuration>
,並在調用WandGenesis();
,我得到一個DllNotFoundException
,與消息 'libMagickWand'。
我讀過this page,我想我遵循所有規則。還有什麼我可以嘗試嗎?
更新:
我跑了MONO_LOG_LEVEL =調試.exe文件。以下是相關信息:
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'.
錯誤的體系結構:我運行雪豹在32位模式下,總是有。我使用MacPorts安裝了ImageMagick,並使用mono-project.com中的Mac軟件包安裝了Mono。用不同的體系結構編譯什麼?
更新:
我想我找到了我的問題:
MacBook-Pro:lib ken$ lipo -info libMagickWand.5.dylib
Non-fat file: libMagickWand.5.dylib is architecture: x86_64
更新:
...但我仍然有問題。我似乎無法弄清楚如何用i386架構編譯ImageMagick。當我使用標誌嘗試這樣做時,它會抱怨編譯爲64位的其他庫。
查看我更新的答案。 – 2012-01-28 23:47:22