Compilation: undefined reference to `__dn_expand’

Compiler une application depuis ses sources ajoutes très souvent des complications du fait de ses dépendances, etc… Mais des fois, c’est le compilateur qui ne fait pas très bien les choses, le Makefile n’est pas créé à la perfection. Pour rappel, le Makefile est un fichier créé par le script configure pour guider la compilation (les librairies à inclure, les différents paths, et surtout, ce que doit faire make).

Lors de la compilation de PHP 5.3 depuis le dépôt SVN, j’ai eu cette erreur:

ext/standard/dns.o: In function zif_dns_check_record':
/home/samuel/Développement/workspaces/Public/PHP_5_3/ext/standard/dns.c:393: undefined reference to
__res_nsearch’
ext/standard/dns.o: In function php_parserr':
/home/samuel/Développement/workspaces/Public/PHP_5_3/ext/standard/dns.c:418: undefined reference to
__dn_expand’
/home/samuel/Développement/workspaces/Public/PHP_5_3/ext/standard/dns.c:468: undefined reference to __dn_expand'
/home/samuel/Développement/workspaces/Public/PHP_5_3/ext/standard/dns.c:513: undefined reference to
__dn_expand’
/home/samuel/Développement/workspaces/Public/PHP_5_3/ext/standard/dns.c:519: undefined reference to __dn_expand'
/home/samuel/Développement/workspaces/Public/PHP_5_3/ext/standard/dns.c:636: undefined reference to
__dn_expand’
ext/standard/dns.o:/home/samuel/Développement/workspaces/Public/PHP_5_3/ext/standard/dns.c:652: more undefined references to __dn_expand' follow
ext/standard/dns.o: In function
zif_dns_get_record':
/home/samuel/Développement/workspaces/Public/PHP_5_3/ext/standard/dns.c:810: undefined reference to __res_nsearch'
/home/samuel/Développement/workspaces/Public/PHP_5_3/ext/standard/dns.c:833: undefined reference to
__dn_skipname’
ext/standard/dns.o: In function zif_dns_get_mx':
/home/samuel/Développement/workspaces/Public/PHP_5_3/ext/standard/dns.c:933: undefined reference to
__res_nsearch’
/home/samuel/Développement/workspaces/Public/PHP_5_3/ext/standard/dns.c:944: undefined reference to __dn_skipname'
/home/samuel/Développement/workspaces/Public/PHP_5_3/ext/standard/dns.c:951: undefined reference to
__dn_skipname’
/home/samuel/Développement/workspaces/Public/PHP_5_3/ext/standard/dns.c:964: undefined reference to `__dn_expand’

En fait, il suffisait – quelques heures de recherche – d’ajouter l’option -lresolv à EXTRA_LIBS dans le Makefile justement. Ouvrez le Makefile puis cherchez la ligne qui commence par EXTRA_LIBS =.

Voici la mienne:

Puis, avec la nouvelle option:

Ensuite, il vous suffit de compiler.

facebooktwittergoogle_plusredditpinterestlinkedinmail

One thought on “Compilation: undefined reference to `__dn_expand’”

Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code class="" title="" data-url=""> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong> <pre class="" title="" data-url=""> <span class="" title="" data-url="">