2010-03-23 18 views
6

Es scheint, dass ich mehr Probleme habe, Standard-Unix-Dinge auf Snow Leopard laufen zu lassen als jede andere Plattform - einschließlich Windows cygwin In den letzten paar Tagen habe ich versucht, ImageMagick auf Snow laufen zu lassen Leopard.ImageMagick auf Mac OSX Snow Leopard. Gibt es eine Möglichkeit, es kompilieren und ausführen zu lassen?

Der offensichtlichste Weg, Mac Ports, schlägt fehl:

tppllc-Mac-Pro:ImageMagick-sl swirsky$ sudo port install imagemagick 
---> Computing dependencies for p5-locale-gettext 
---> Configuring p5-locale-gettext 
Error: Target org.macports.configure returned: configure failure: shell command " cd "/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_ports_perl_p5-locale-gettext/work/gettext-1.05" && /opt/local/bin/perl Makefile.PL INSTALLDIRS=vendor " returned error 2 
Command output: checking for gettext... no 
checking for gettext in -I/opt/local/include -arch i386 -L/opt/local/lib -lintl...gettext function not found. Please install libintl at Makefile.PL line 18. 
no 

Error: Unable to upgrade port: 1 
Error: Unable to execute port: upgrade xorg-libXt failed 
Before reporting a bug, first run the command again with the -d flag to get complete output. 
tppllc-Mac-Pro:ImageMagick-sl swirsky$ 

Viele wollen nicht aus Bezifferung noch zwei Tage zu verbringen, warum meine libintl nicht ein „gettext“ Funktion hat, habe ich einen anderen Weg versucht: die Skript erwähnt hier: http://github.com/masterkain/ImageMagick-sl

Dieses Skript heruntergeladen und installiert ein ImageMagick unabhängig von MacPorts gibt

tppllc-Mac-Pro:ImageMagick-sl swirsky$ /usr/local/bin/convert 
dyld: Library not loaded: /opt/local/lib/libiconv.2.dylib 
    Referenced from: /opt/local/lib/libfontconfig.1.dylib 
    Reason: Incompatible library version: libfontconfig.1.dylib requires version 8.0.0 or later, but libiconv.2.dylib provides version 7.0.0 
Trace/BPT trap 

Es liest alle Daten und kompiliert gut, aber schlägt fehl, wenn ich versuche, es mit der obigen Nachricht auszuführen.

Also jetzt bin ich zwei Schritte von ImageMagick entfernt, versuche eine neuere libiconv auf meinem Rechner zu bekommen.

Ich habe die neueste libiconv heruntergeladen, kompiliert und gebaut. Ich stellte die resultierende Bibliothek in/opt/local/lib, und ich immer noch die gleiche Fehlermeldung:

tppllc-Mac-Pro:.libs swirsky$ sudo mv libiconv.2.dylib /opt/local/lib/libiconv.2.dylib 
tppllc-Mac-Pro:.libs swirsky$ convert 
dyld: Library not loaded: /opt/local/lib/libiconv.2.dylib 
    Referenced from: /opt/local/lib/libfontconfig.1.dylib 
    Reason: Incompatible library version: libfontconfig.1.dylib requires version 8.0.0 or later, but libiconv.2.dylib provides version 7.0.0 
Trace/BPT trap 

Jetzt ist hier etwas Interessantes. Die Fehlermeldung zeigt an, dass es in /opt/local/lib/libiconv.2.dylib sucht.

Otools -L zeigt, dass diese 8.0.0 nicht implementiert:

tppllc-Mac-Pro:.libs swirsky$ otool -L /opt/local/lib/libiconv.2.dylib 
/opt/local/lib/libiconv.2.dylib: 
    /usr/local/lib/libiconv.2.dylib (compatibility version 8.0.0, current version 8.0.0) 
    /usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 125.0.0) 
tppllc-Mac-Pro:.libs swirsky$ 

Und für eine gute Maßnahme, ich die DYLD_LIBRARY_PATH gesetzt dieses Verzeichnis, um sicherzustellen, das für dynamische Bibliotheken ist.

Also obwohl ich eine Bibliothek habe, die 8.0.0 bietet, wird es als 7.0.0 gesehen! Irgendwelche Ideen, warum das passieren würde?

Also hier ist meine Frage: Ist es möglich, ImageMagick auf OSX Snow Leopard laufen zu lassen? Gibt es irgendwelche Binärdistributionen, die statische Bibliotheken eingebrannt haben, also muss ich mich nicht um dieses Problem sorgen/

Antwort

0

Mein Google zeigte sich ein paar Treffer, und der erste oder zweite hatte eine link to the binary.

+0

Dank! Ich habe diese Seite gesehen, aber verpasst, weil sie zuerst MacPorts empfohlen hat. Die Binärverteilung scheint zu funktionieren. (Obwohl ich eine solche bevorzugen würde, bei der die Bibliotheken statisch verknüpft sind. Das Ändern der Umgebungsvariablen DYLD_LIBRARY_PATH bricht andere Dinge ...) –

+5

Die ImageMagick-Leute haben leider die funktionierende Binärdatei gelöscht und stattdessen eine reine Lion-Binärdatei auf ihre Website gestellt . Diese Antwort ist jetzt nicht mehr korrekt :(. – Adam

0

Endlich konnte ich meine "Macports" -Installation so weit bringen, dass imagemagick installiert und ausgeführt werden konnte. Ich musste meine/opt/local/directores, in denen die Dateien gelandet waren, manuell löschen und einige andere Abhängigkeiten bereinigen.

+0

Nein! Ich sprach zu früh. Es kompiliert und erstellt, aber nicht ausgeführt. Jede Operation stirbt in einem "Abort Trap". –

0

Es scheint, dass der dynamische Linker das System libiconv.2.dylib (das die Kompatibilitätsversion 7.0.0 hat) zieht. Ohne den ganzen Build-Prozess zu sehen, ist es schwer zu wissen, warum das so ist, aber ich bin misstrauisch gegenüber deinem libiconv-Build; beachten Sie, dass in der folgenden Fehler an:

tppllc-Mac-Pro:.libs swirsky$ otool -L /opt/local/lib/libiconv.2.dylib 
/opt/local/lib/libiconv.2.dylib: 
    /usr/local/lib/libiconv.2.dylib (compatibility version 8.0.0, current version 8.0.0) 
    /usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 125.0.0) 

Ihre libiconv.2.dylib scheint zu denken, dass ihr Weg installieren ist /usr/local/lib, nicht /opt/local/lib. Dies ist wahrscheinlich, warum der dynamische Linker es nicht findet; es sucht in /usr/local/lib, es nicht zu finden, und fällt auf die Systembibliothek in /usr/lib zurück.Versuchen Sie, den Installationspfad für libiconv.2.dylib so festzulegen, dass die Ladebefehle dem Linker mitteilen, dass er in /opt/local/lib danach suchen soll. Dadurch kann das Problem möglicherweise behoben werden.

1

Ich habe diesen genauen Fehler mit dieser genauen Bibliothek in mehreren Situationen gesehen. Es war in jedem Fall eine Instanz, bei der entweder die Person oder ein Skript, das sie verwendeten, die Variable DYLD_LIBRARY_PATH setzte.

Stellen Sie sicher, dass diese Variable nicht gesetzt ist, da sie das Laden der explizit verknüpften Bibliotheken mit denen an diesem Pfad überschreibt.

Wenn der DYLD_ * gesetzt werden muss, verwenden Sie den sinnvolleren DYLD_FALLBACK_LIBRARY_PATH. Dies wird zuerst versuchen, die explizit verknüpften Bibliotheken zu laden und dann auf die vom Benutzer deklarierten.

Ich habe auf Ihrem ersten Build bemerkt, dass es die gettext-Bibliothek in Macports nicht gefunden hat. Stellen Sie also sicher, dass diese installiert sind.

+0

Dies sollte DYLD_FALLBACK_LIBRARY_PATH sein. Siehe 'man dyld' –

3

Sie können auch versuchen, die ImageMagick hier Skript befindet installieren: http://github.com/masterkain/ImageMagick-sl

Es hat mir sehr geholfen. Möglicherweise erforderlich, um einige Bibliotheksversionen im Skript zu ändern.

0

Ich hatte das gleiche Problem, und löste es durch die Deinstallation und Neuinstallation libiconv mit Macports. Dann funktioniert alles gut (Ich habe auch/opt/local/lib/als erster Eintrag in meiner DYLD_LIBRARY_PATH-Variable)

0

Seltsam. Ich bin ziemlich glücklich mit meinen Macports - und alles wird ohne Fehler kompiliert. Ich kann nur raten - benutze Macports.
ImageMagick @ 6.6.9-9_0 + graphviz + hdri + jpeg2 + mpeg + perl + q16 + RSVG + wmf (aktiv)

5

Das ist für mich gearbeitet:

sudo brew install imagemagick

Verwandte Themen