J'essaie de compiler manuellement mon extension iconv php afin qu'il utilise libiconv au lieu de glibc. J'ai téléchargé libiconv et configuré avec ./configure --prefix=/usr/local
, make
puis Sudo make install
.
J'ai trouvé ces instructions sur la compilation manuelle: https://stackoverflow.com/questions/4743080/how-can-i-force-php-to-use-the-libiconv-version-of -iconv-lieu-du-centos-in/4851065 # 4851065
J'ai une version 5.6.10 de PHP et elle a été installée à l'aide de phpbrew. J'ai donc commencé à l'étape 3.
À l'étape 5 (make
), j'ai rencontré l'erreur suivante:
/usr/bin/ld: ext/standard/.libs/image.o: undefined reference to symbol 'uncompress'
//lib/x86_64-linux-gnu/libz.so.1: error adding symbols: DSO missing from command line
collect2: error: ld returned 1 exit status
make: *** [sapi/cli/php] Error 1
Voulez-vous savoir comment résoudre ce problème? Merci beaucoup.
J'ai résolu ce problème en modifiant la Makefile
et en ajoutant -lz
à EXTRA_LIBS
.
Makefile
dans le répertoire php
.EXTRA_LIBS
.-lz
.Cela renvoie à la bibliothèque qui manquait. -lz
liens à zlib .
Cette solution est basée sur réponse de kevinf à erreur de liaison étrange: DSO manquant sur la ligne de commande sur dépassement de capacité.