2010-03-23 6 views
6

Il semble que j'ai plus de mal à faire avancer les choses Unix standard pour fonctionner sur Snow Leopard que toute autre plate-forme - y compris Windows CygwinImageMagick sur Mac OSX Snow Leopard. Est-il possible de le compiler et de le faire fonctionner?

Pour les deux derniers jours, j'ai essayé d'obtenir ImageMagick à courir sur la neige Léopard.

La façon la plus évidente, Ports Mac, échoue:

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$ 

Ne voulant pas passer deux jours à comprendre pourquoi mon libintl ne dispose pas d'une fonction « gettext », j'ai essayé un autre itinéraire: le scénario mentionné ici: http://github.com/masterkain/ImageMagick-sl

Ce script télécharge et installe un ImageMagic indépendamment de MacPorts émet

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 

Il télécharge tout et compile bien, mais échoue quand j'essaye de l'exécuter, avec le message ci-dessus.

Alors maintenant, je suis à deux pas de ImageMagick, en essayant d'obtenir une nouvelle libiconv sur ma machine.

J'ai téléchargé le dernier libiconv, compilé et construit. Je mets la bibliothèque résultante dans/opt/local/lib, et je reçois toujours le même message d'erreur:

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 

Maintenant, voici quelque chose d'intéressant. Le message d'erreur indique qu'il regarde dans /opt/local/lib/libiconv.2.dylib.

otools -L montre que cela n'implémente 8.0.0:

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$ 

Et, pour faire bonne mesure, je mis le DYLD_LIBRARY_PATH pour vous assurer que ce répertoire est celui des bibliothèques dynamiques.

Ainsi, même si j'ai une bibliothèque qui fournit 8.0.0, il est vu comme 7.0.0! Des idées pour lesquelles cela arriverait?

Alors, voici ma question: Est-il possible d'obtenir ImageMagick de fonctionner sur Mac OS X Snow Leopard? Y a-t-il des distributions binaires qui ont des bibliothèques statiques cuites, donc je n'ai pas à m'inquiéter de ces problèmes/

Répondre

0

Mon google a montré quelques hits, et le premier ou le second avait un link to the binary.

+0

Merci! J'ai vu cette page, mais je l'ai manquée parce qu'elle a d'abord recommandé d'utiliser MacPorts. La distribution binaire semble fonctionner. (Bien que je préférerais de beaucoup celle qui a les bibliothèques liées statiquement Modifier la variable d'environnement DYLD_LIBRARY_PATH brise d'autres choses ...) –

+5

Les gens de ImageMagick ont ​​malheureusement supprimé le binaire de travail, et ont plutôt mis un binaire Lion uniquement sur leur site Web . Cette réponse n'est plus correcte maintenant :(. – Adam

0

J'ai enfin pu obtenir mon « macports » l'installation assez cohérente pour se ImageMagick installé et en cours d'exécution. J'ai dû supprimer manuellement mes/opt/local/directors où les fichiers se trouvaient, et nettoyer d'autres dépendances.

+0

Non, j'ai parlé trop tôt, il compile et construit, mais ne fonctionne pas.Chaque opération meurt dans un "Abort Trap" –

0

Il semble que l'éditeur de liens dynamique tire dans le système libiconv.2.dylib (qui a la compatibilité la version 7.0.0). Sans voir votre processus de construction entier, il est difficile de savoir exactement pourquoi, mais je me méfie de votre version de libiconv; noter que, dans l'échec suivant:

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) 

votre libiconv.2.dylib semble penser que son chemin d'installation est /usr/local/lib, pas /opt/local/lib. C'est probablement pourquoi le lieur dynamique ne le trouve pas; il cherche dans /usr/local/lib, ne pas le trouver, et retomber sur la bibliothèque du système dans /usr/lib.Essayez de définir le chemin d'installation de votre libiconv.2.dylib afin que ses commandes de chargement indiquent à l'éditeur de liens de le rechercher dans /opt/local/lib, ce qui peut résoudre le problème.

1

J'ai vu cette erreur exacte avec cette bibliothèque exacte dans plusieurs situations. Dans tous les cas, il s'agissait d'une instance dans laquelle l'individu ou un script utilisé définissait la variable DYLD_LIBRARY_PATH.

Assurez-vous que cette variable n'est pas définie car elle remplace le chargement des bibliothèques explicitement liées avec celles de ce chemin.

Si le DYLD_ * doit être défini, utilisez le DYLD_FALLBACK_LIBRARY_PATH plus sain. Ce qui tentera d'abord de charger les bibliothèques explicitement liées, puis de les replier sur celles déclarées par l'utilisateur.

J'ai noté sur votre build initial qu'il ne trouvait pas la bibliothèque gettext dans macports. Alors assurez-vous que ceux-ci sont installés.

+0

cela devrait être DYLD_FALLBACK_LIBRARY_PATH voir 'man dyld' –

3

Vous pouvez également essayer le script d'installation ImageMagick situé ici: http://github.com/masterkain/ImageMagick-sl

Il m'a beaucoup aidé. Peut être nécessaire pour changer certaines versions de la bibliothèque dans le script.

0

J'ai rencontré le même problème et l'ai résolu en désinstallant puis en réinstallant libiconv à l'aide de Macports. Puis tout fonctionne bien (j'ai aussi/opt/local/lib/comme la première entrée dans ma variable DYLD_LIBRARY_PATH)

0

Étrange. Je suis assez content de mes macports - et tout est compilé sans erreur. Je ne peux que conseiller - utiliser macports.
ImageMagick @ 6.6.9-9_0 + graphviz + hdri + jpeg2 + mpeg + perl + Q16 + rsvg + WMF (actif)

5

Cela a fonctionné pour moi:

sudo brew install imagemagick