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 :

socket : update des fonctions oboletes


Sujet :

C++

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Étudiant
    Inscrit en
    Janvier 2007
    Messages
    75
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2007
    Messages : 75
    Par défaut socket : update des fonctions oboletes
    Bonjour,
    J'ai du developper un programme pour connection socket JAVA_APPLET/C++.
    Avec un bout de code parci parla, j'ai eu un resultat, ca marche.

    J'ai fais ca chez moi sous cygwin avec cette version de g++ :o
    g++ --version
    g++ (GCC) 3.4.4 (cygming special, gdc 0.12, using dmd 0.125)


    Et puis voila vient le moment de le faire tourner vraiment sous linux. La version de g++ est :
    g++ --version
    g++ (GCC) 4.0.3



    et mon code marche plus !
    L'erreur est :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    g++ server_linux.cpp
    Undefined                       first referenced
     symbol                             in file
    recv                                /var/tmp//ccRICfah.o
    send                                /var/tmp//ccRICfah.o
    __xnet_socket                       /var/tmp//ccRICfah.o
    accept                              /var/tmp//ccRICfah.o
    listen                              /var/tmp//ccRICfah.o
    __xnet_bind                         /var/tmp//ccRICfah.o
    ld: fatal: Symbol referencing errors. No output written to a.out
    collect2: ld returned 1 exit status
    Alors je cherche, je tombe sur : http://www.linux-kheops.com/doc/man/...recvmsg.2.html , je me dis ok, c'est juste que mes fonctions sont obsoletes. Je mets a jour tant bien que mal (Pas facile de remplir des champs dont on n'a pas l'utilite !)
    et la l'erreur devient :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    g++ server_linux.cpp
    Undefined                       first referenced
     symbol                             in file
    send                                /var/tmp//ccx3la8j.o
    __xnet_socket                       /var/tmp//ccx3la8j.o
    accept                              /var/tmp//ccx3la8j.o
    listen                              /var/tmp//ccx3la8j.o
    recvfrom                            /var/tmp//ccx3la8j.o
    __xnet_bind                         /var/tmp//ccx3la8j.o
    ld: fatal: Symbol referencing errors. No output written to a.out
    collect2: ld returned 1 exit status
    On peut voir que recv() que j'ai elemine au profit de recvfrom() a bien disparu de la premiere liste d'erreur, mais voila que recvfrom() apparait dans la deuxieme !

    le meme senario se presente si je chante send() par sendto()

    Je posterais le code si les erreurs ne parlent pas.
    Voila, si quelqu'un pouvait avoir une idee :o

    PS : je vous ecris depuis la fac, d'ou l'absence d'accent...(qwerty power!)

  2. #2
    Rédacteur
    Avatar de Laurent Gomila
    Profil pro
    Développeur informatique
    Inscrit en
    Avril 2003
    Messages
    10 651
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2003
    Messages : 10 651
    Par défaut
    Tes fonctions ne sont pas obsolètes : send/recv c'est pour du mode connecté (typiquement TCP), sendto/recvfrom pour du mode non-connecté (typiquement UDP).

    Il suffit de trouver avec quelle bibliothèque lier (perso je n'en sais rien, pour Linux).

  3. #3
    Membre confirmé
    Profil pro
    Étudiant
    Inscrit en
    Janvier 2007
    Messages
    75
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2007
    Messages : 75
    Par défaut
    Citation Envoyé par Laurent Gomila
    Tes fonctions ne sont pas obsolètes : send/recv c'est pour du mode connecté (typiquement TCP), sendto/recvfrom pour du mode non-connecté (typiquement UDP).

    Il suffit de trouver avec quelle bibliothèque lier (perso je n'en sais rien, pour Linux).
    Ben c'est deja quelque chose qui me rejouit de pas devoir tout changer :o
    La bibliotheque a lier, si je lis bien la page de manuel, c'est
    #include <sys/types.h>
    #include <sys/socket.h>

    non ?
    Que ce soit pour windows ou linux, je n'ai jamais vu autre chose.

  4. #4
    Membre Expert
    Avatar de Patriarch24
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Septembre 2003
    Messages
    1 047
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2003
    Messages : 1 047
    Par défaut
    La bibliotheque a lier, si je lis bien la page de manuel, c'est
    #include <sys/types.h>
    #include <sys/socket.h>
    Il ne s'agit pas de bibliothèques ! Il s'agit de fichiers d'entêtes. En plus des entêtes à inclure, il y a fort à parier qu'il est nécessaire de lier les bibliothèques exportant ces symboles (libxxx.a) en faisant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    g++ -Lxxx -Ipath/to/libxxx mesfichiers.cpp
    Tu pourrais poster l'erreur en entier stp ?

  5. #5
    Membre confirmé
    Profil pro
    Étudiant
    Inscrit en
    Janvier 2007
    Messages
    75
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2007
    Messages : 75
    Par défaut
    oula, je vais lire quelques docs au sujet des fichiers d'entete car je ne connais pas du tout !

    Pour ce qui est des erreurs, elles sont deja entierement cite :o

    Merci de vos aides

  6. #6
    Rédacteur
    Avatar de Laurent Gomila
    Profil pro
    Développeur informatique
    Inscrit en
    Avril 2003
    Messages
    10 651
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2003
    Messages : 10 651
    Par défaut
    Les en-têtes ne font que des déclarations, quand vient le moment de faire l'édition de lien et de trouver l'implémentation des fonctions, ce n'est pas dans les en-têtes qu'on va les trouver, c'est dans les bibliothèques (fichiers .a).

  7. #7
    Membre confirmé
    Profil pro
    Étudiant
    Inscrit en
    Janvier 2007
    Messages
    75
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2007
    Messages : 75
    Par défaut
    J'oubliais, il y a certain "symbole" de la liste que je n'utilise pas, comme __xnet_socket par exemple...

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

Discussions similaires

  1. Il manque des fonctions?
    Par Gruik dans le forum Requêtes
    Réponses: 3
    Dernier message: 14/10/2003, 23h44
  2. Liste des fonctions
    Par Mookie dans le forum C
    Réponses: 2
    Dernier message: 22/09/2003, 16h42
  3. Des fonctions OGL pour les images de format usuel ?
    Par jamal24 dans le forum OpenGL
    Réponses: 3
    Dernier message: 31/05/2003, 21h59
  4. Appel à des fonctions incluses dans des DLL
    Par Greybird dans le forum Langage
    Réponses: 3
    Dernier message: 26/05/2003, 13h33
  5. Implémentation des fonctions mathématiques
    Par mat.M dans le forum Mathématiques
    Réponses: 9
    Dernier message: 17/06/2002, 16h19

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