IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C Discussion :

PB de compilation


Sujet :

C

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé Avatar de guiyomh
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    328
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 328
    Par défaut PB de compilation
    bonjour,
    je suis débutant et j'essaye de suivre un tuto sur libpcap pour la capture de paquet,
    mais je n'arrive pas a compiler les exemples.J'ai les erreurs suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $ gcc -c toto.c -lpcap
    gcc: -lpcap: fichier d'entrée d'édition de liens n'est pas utilisé parce l'édition de lien n'a pas été faite
    voici mon code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    #include	<stdio.h>
    #include	<stdlib.h>
    #include	<errno.h>
    #include	<sys/socket.h>
    #include	<netinet/in.h>
    #include	<arpa/inet.h>
    #include	<pcap.h>
     
    int main(int argc, char **argv)
    {
    	char *net;                              // direccion de red
    	char *mask;                             // mascara de subred
    	char *dev;                              // nombre del dispositivo de red
    	int ret;                                // codigo de retorno
    	char errbuf[PCAP_ERRBUF_SIZE];          // buffer para mensajes de error
    	bpf_u_int32 netp;                       // direcion de red en modo raw
    	bpf_u_int32 maskp;                      // mascara de red en modo raw
    	struct in_addr addr;
     
    	if ((dev = pcap_lookupdev(errbuf))== NULL){//conseguimos la primera interfaz libre
    		printf("ERROR %s\n",errbuf);
    		exit(-1);
    	}
     
    	printf("Nombre del dispositivo: %s\n",dev); //mostramos el nombre del dispositivo
     
    	if ((ret = pcap_lookupnet(dev,&netp,&maskp,errbuf))==-1){ //consultamos las direccion de red y las mascara
    		printf("ERROR %s\n",errbuf);
    		exit(-1);
    	}
     
    	addr.s_addr = netp;                     //Traducimos la direccion de red a algo legible
    	if ((net = inet_ntoa(addr))==NULL){
    		perror("inet_ntoa");
    		exit(-1);
    	}
     
    	printf("Direccion de Red: %s\n",net);
     
    	addr.s_addr = maskp;                    //Idem para la mascara de subred
    	mask = inet_ntoa(addr);
     
    	if ((net=inet_ntoa(addr))==NULL){
    		perror("inet_ntoa");
    		exit(-1);
    	}
    	printf("Mascara de Red: %s\n",mask);
    	return 0;
    }
    je suis sur linux et j'utilise gcc. est ce que quelqu'un peut m'aider ?

  2. #2
    Membre Expert
    Inscrit en
    Décembre 2004
    Messages
    1 478
    Détails du profil
    Informations forums :
    Inscription : Décembre 2004
    Messages : 1 478
    Par défaut
    Le message d'erreur est limpide. En precisant -c, tu ne fais que la compilation (la production du fichier objet toto.o). Le lien avec les bibliotheques (-l) ne se fait qu'a l'edition des liens. Donc ou bien tu te debarrasses du -c si toto.c est la seule unite de compilation de ton programme, ou tu fais une compilation separee correcte.

  3. #3
    Membre éclairé Avatar de guiyomh
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    328
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 328
    Par défaut
    euh en clair je doir faire un truc du genre ?

    Estce que l'on peut m'expliquer un peut plus la compilation car je pense que j'ai raté un truc.

  4. #4
    Membre Expert Avatar de nicolas.sitbon
    Profil pro
    Inscrit en
    Août 2007
    Messages
    2 015
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 2 015
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    $gcc -c toto.c
    $gcc -o toto toto.o -lpcap
    $./toto
    ou bien
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    gcc -o toto toto.c -lpcap

  5. #5
    Membre éclairé Avatar de guiyomh
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    328
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 328
    Par défaut
    merci pour ces conseils

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 15
    Dernier message: 10/10/2002, 19h19
  2. [Installation] Borland Compiler 5.5 sous XP
    Par Ligey dans le forum Autres éditeurs
    Réponses: 16
    Dernier message: 28/09/2002, 22h45
  3. dans le fond, la compilation...
    Par deltapositive dans le forum C++Builder
    Réponses: 5
    Dernier message: 17/09/2002, 12h14
  4. Vitesse de compilation
    Par srvremi dans le forum C++Builder
    Réponses: 5
    Dernier message: 30/07/2002, 16h49
  5. Réponses: 1
    Dernier message: 27/05/2002, 01h44

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo