Ich versuche, mit der ImageMagick-Bibliothek in Mono auf einem Mac zu interagieren. Ich habe die ImageMagick-Bibliothek mit MacPorts installiert und überprüft, dass die Datei libMagickWand.dylib im Verzeichnis / opt / local / lib vorhanden ist. Ich habe auch eine weiche Verbindung zu dieser Datei im Verzeichnis / usr / local / lib erstellt.
Hier ist meine DllImport-Anweisung:
%Vor%Hier ist meine App.config:
%Vor% Und beim Aufruf von WandGenesis();
erhalte ich eine DllNotFoundException
mit der Nachricht 'libMagickWand'.
Ich habe diese Seite gelesen und denke, dass ich alle Regeln befolge. Gibt es noch etwas, das ich ausprobieren kann?
Aktualisierung:
Ich habe die .exe mit MONO_LOG_LEVEL = debug ausgeführt. Hier ist die relevante Information:
%Vor%falsche Architektur : Ich betreibe Snow Leopard im 32-Bit-Modus und habe immer. Ich habe ImageMagick mit MacPorts installiert und Mono mit dem Mac-Paket von mono-project.com installiert. Was wäre mit einer anderen Architektur zusammengestellt worden?
Aktualisierung:
Ich glaube, ich habe mein Problem gefunden:
%Vor%Aktualisierung:
... aber ich habe immer noch Probleme. Ich kann nicht herausfinden, wie man ImageMagick mit i386-Architektur kompiliert. Wenn ich dies unter Verwendung von Flags versuche, beschwert es sich über andere Bibliotheken, die als 64-Bit kompiliert wurden.
Aktualisierung:
Mono unter Mac OS X ist 32 Bit (zumindest in der Regel können Sie das mit mono --version
bestätigen) und Sie versuchen, eine Verbindung mit einer 64-Bit-Binärdatei herzustellen, was nicht möglich ist. Sie müssen eine 32-Bit-Binärdatei bereitstellen (oder 64-Bit-Mono verwenden).
Haben Sie den Fehler, selbst wenn nur der Dateiname der Bibliothek im Ziel enthalten ist und die Bibliothek entsprechend platziert ist (oder der DYLD_LIBRARY_PATH-Satz)? In diesem Fall geben Sie bitte die Ausgabe von mono an, die mit MONO_LOG_LEVEL = debug ausgeführt wird.
Tags und Links c# interop architecture mono imagemagick