MacのMonoでImageMagickライブラリと相互運用しようとしています。私はMacPortsでImageMagickライブラリをインストールし、ファイルがディレクトリ/opt/local/libに存在することを確認しました。また、ディレクトリ/usr/local/libにそのファイルへのソフトリンクを作成しました。 WandGenesis();
への呼び出しで、私はメッセージで、DllNotFoundException
を取得し、MacのMonoでDllImportを使用したDllNotFoundException:間違ったアーキテクチャ
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<dllmap dll="libMagickWand" target="/opt/local/lib/libMagickWand.dylib" />
</configuration>
そして 'libMagickWand':
[DllImport("libMagickWand", EntryPoint = "MagickWandGenesis")]
static extern void WandGenesis();
はここに私のApp.configファイルです:
は、ここに私のDLLIMPORT声明です。
私は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ビットモードでのSnow Leopardを実行しているし、常に持っています。 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
:
私は、私は私の問題を見つけたと思う
...しかし、私はまだ問題を抱えています。私はImageMagickをi386アーキテクチャでどのようにコンパイルするのか分かりません。私はフラグを使ってそうしようとすると、64ビットとしてコンパイルされた他のライブラリについて不平を言う。
私の更新された回答を参照してください。おかげさまで –