Bonjour,
je suis assez débutant en C bien que je sache un peu programmer en fortran, basic et autres shell's. (ou batch du MS-DOS)
Donc les problèmes principaux que j'ai ont trait à ce qui est spécifique au C, à savoir les pointeurs !
Donc je me retrouve à la compil' par gcc avec l'erreur suivante :
attention : assignment makes pointer from integer without a cast
et la ligne incriminée est :
hp = gethostbyname(serv);
Il va sans dire que hp est bien déclaré comme un pointeur vers une structure hostent, ce qui est ce que retourne la fonction gethostbyname().
Par contre le man de gethostbyname, me dit qu'il faudrait inclure le header netdb.h qui ne l'est pas dans l'original du programme que je tente de modifier;
Quand je l'ajoute, il se produit de nouvelles erreurs à l'édition de liens, à savoir :
1 2 3 4 5 6 7
| undefined reference to `__res_mkquery'
undefined reference to `__res_send'
undefined reference to `__dn_skipname'
undefined reference to `__dn_expand'
undefined reference to `_getshort'
undefined reference to `_getshort'
undefined reference to `__dn_expand' |
Pourtant, ces symboles ne sont utilisés nulle part dans le code que je modifie.
Comment définir ces symboles manquants ? Faut il un autre header et lequel ? (mais le seul header dans lequel apparaissent ces symboles est resolv.h, qui est déjà inclus),
ou comment éviter mon problème originel de cast entre un entier et un pointeur ?
Merci,
David
Partager