Bon, vu que j'ai perdu plusieurs heures (et que ce n'est pas la première fois que cela m'arrive) là-dessus, un petit billet pour essayer de s'en souvenir.

Situation : cela fait des années que j'utilise Perl sous Windows (pour plein de choses), et ImageMagick (pour le traitement automatique en ligne de commandes d'images). Mais, à chaque fois que je fais une mise à jour de l'un ou l'autre de ces outils, c'est la croix et la bannière pour réussir à les faire à nouveau parler entre eux !

D'après la documentation, c'est très simple :

  • cpan
  • install Image::Magick
  • et voilà, c'est tout...

D'après mon expérience, ça ne se passe jamais comme ça :

  • les versions disponibles sur CPAN et sur le site d'ImageMagick ne sont pas alignées,[1] ce qui pose des soucis d'interface entre librairies ;
  • et même si les versions sont alignées, la compilation ne s'est jamais passée du premier coup.

Donc, si, lors de la compilation, vous avez un message « Warning (mostly harmless): No library found for -lMagickCore-Q16 », détrompez-vous, ce n'est pas bénin ! Ce sera alors suivi de quantité de messages d'erreur (que la bienséance m'empêche de répéter céans) lors de l'étape de la génération de liens.

Les étapes que j'ai effectuées pour finalement réussir à compiler Image::Magick :

  • installer la version d'ImageMagick qui correspond à la version d'Image::Magick sur CPAN (soit la 6.8.2 lors de l'écriture de ce billet) ;[2]
  • cpan ;
  • get Image::Magick ;
  • look Image::Magick ;
  • perl Makefile.PL ;
  • éditer le fichier Makefile et ajouter -lCORE_RL_Magick_[3] à la fin de la ligne LDLOADLIBS = ;
  • dmake (qui, normalement, ne devrait plus se plaindre de quoi que ce soit) ;
  • dmake install ;
  • exit ;
  • exit

Et voilà, la librairie est maintenant normalement disponible pour les programmes Perl. Joie, bonheur, contentement !

Further reading : Install ImageMagick on Strawberry Perl on Win 10

Notes

[1] Au moment d'écrire ce billet, ImageMagick est à la version 6.8.5, Image::Magick sur CPAN est à la version 6.8.2.

[2] Attention, bien évidemment, à choisir une version 32 ou 64 bits qui corresponde à votre installation de Perl. Et surtout, une version « dynamic » (ou « dll ») d'ImageMagick ; et sélectionner l'installation des librairies de développement dans la procédure d'installation.

[3] Pour trouver ce nom là, regarder dans le sous-dossier lib du répertoire d'installation d'ImageMagick.