2017-08-26 3 views
-2

La fonction socket() utilisée dans mon code renvoie -1. Afinde pour en savoir plus à ce sujet example_socket() est ajouté et ajouter headerfileRéférence non définie à 'explain_setsocket'

#include<libexplain/socket.h> 

Lors de la compilation -lexplain est également ajouté. Mais j'ai erreur ci-dessous

undefined reference to `explain_socket »

code:

#include <libexplain/socket.h> 
main(){ 
int sock; 
if((sock = socket(AF_INET, SOCK_DGRAM, 0)) == -1){ 
       char message[5000]; 
     memset(message,0,5000); 
       printf("\nSOCKET ERROR\n"); 
     printf("err: socket() failed"); 
     fprintf(stderr, "%s\n", explain_socket(AF_INET, SOCK_DGRAM, 0)); 
     exit(EXIT_FAILURE); 
    } 
} 

S'il vous plaît me aider à résoudre ce problème.


[Mise à jour from comment]

commande Compilation:

cc xyz.c -lexplain -o xyz 
+1

Que sont 'sopcket.h' et' example_socket'? – melpomene

+2

Pourquoi ne pas simplement 'if ((sock = ...) == -1) {fprintf (stderr," err: socket() a échoué:% s \ n ", strerror (errno)); exit (EXIT_FAILURE); } '? – melpomene

+1

Affiche la commande de compilation actuelle. L'ordre des arguments du compilateur (comme 'gcc') est très important. –

Répondre

0

commande Compilation:

cc xyz.c -lexplain -o xyz 

Vous aimeriez spécifier les bibliothèques dernier sur la ligne de commande:

cc xyz.c -o xyz -lexplain 
+0

le code fait partie d'un grand programme . Créez un fichier make pour la compilation. – student