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

Linux Discussion :

Cross compil "ntohs"


Sujet :

Linux

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 9
    Par défaut Cross compil "ntohs"
    Bonjour,

    J'essaye de cross compiler une application (ipp2p) pour une architecture ARM.
    La compilation me donne des warning :
    "ntohs" undefined
    "ntohl" undefined
    Le problème est que ces warning se transforment en erreurs lors de l'utilisation du logiciel.
    Je n'ai pas ce problème pour une utilisation dans un environnement linux classique (pas de cross compil).

    Quelqu'un a une piste ?

  2. #2
    Membre Expert Avatar de gnto
    Homme Profil pro
    Ingénieur système logiciel
    Inscrit en
    Janvier 2006
    Messages
    923
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Ingénieur système logiciel
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Janvier 2006
    Messages : 923
    Par défaut
    Citation Envoyé par youte
    Bonjour,

    J'essaye de cross compiler une application (ipp2p) pour une architecture ARM.
    La compilation me donne des warning :
    "ntohs" undefined
    "ntohl" undefined
    Le problème est que ces warning se transforment en erreurs lors de l'utilisation du logiciel.
    Je n'ai pas ce problème pour une utilisation dans un environnement linux classique (pas de cross compil).

    Quelqu'un a une piste ?
    Je suppose que c'est du C man ntohs

    As-tu inclus #include <netinet/in.h> ?

  3. #3
    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
    Citation Envoyé par youte
    "ntohs" undefined
    "ntohl" undefined
    Les fonctions ntoh* et hton* ne sont ni ISO C ni POSIX. La libc de ton environnement ARM peut ne pas les offrir (a verifier). Dans ce cas, il faudra les coder toi-meme.

  4. #4
    Membre habitué
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 9
    Par défaut
    Ces fonctions sont biens disponibles dans mon environnement ARM, mais je ne sais pas ce que je dois faire pour qu'elles soient reconnues.

  5. #5
    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
    Citation Envoyé par youte
    Ces fonctions sont biens disponibles dans mon environnement ARM, mais je ne sais pas ce que je dois faire pour qu'elles soient reconnues.
    Si l'erreur que tu rencontres est une erreur de compilation, verifie que tu inclues bien <netinet/in.h> dans les sources qui utilisent ces fonctions (attention: ce sont les includes de ta cible ARM, evidemment).
    Si l'erreur que tu rencontres est une erreur d'edition de lien, verifie que la libc utilisee est bien celle de la cible ARM et qu'elle inclus bien les fonctions ntoh*. A priori, ces fonctions ne necessitent pas de lien explicite avec une bibliotheque speciale, mais cela est peut-etre different sous ARM. Voir la doc.

  6. #6
    Membre habitué
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 9
    Par défaut
    Mon erreur intervient à la compilation. J'ai effectivement un netinet/in.h qui contient la définition des fonctions ntohs et ntohl mais si je fais un include <netinet/in.h> j'obtiens un no such file à la compil. En fait le netinet/in.h se trouve dans l'architecture du cross compilo et je pense qu'il cherche dans l'architecture de la cible.
    Les fonctions ntohl et ntohs sont utilisées sans problème dans iptables par exemple qui est cross compilé mais je n'arrive pas à voir la différence de compilation avec ce que je fais.

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