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

CORBA Discussion :

undefined reference to `operator<<=(CORBA::Any&, Blabla)'


Sujet :

CORBA

  1. #1
    Membre habitué Avatar de Colbix
    Profil pro
    Développeur Web
    Inscrit en
    Juin 2006
    Messages
    266
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juin 2006
    Messages : 266
    Points : 150
    Points
    150
    Par défaut undefined reference to `operator<<=(CORBA::Any&, Blabla)'
    Bonjour à tous,

    Dans une methode d'une classe X, je fait appel à un oppérateur <<= . Dans ce même fichier, je fait l'include d'un fichier (généré par omniidl) qui définit cet oppérateur de la manière suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    void operator<<=(::CORBA::Any& _a, const MonNamespace::CharSeq& _s);
    J'ai l'erreur suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    undefined reference to `operator<<=(CORBA::Any&, Simsat::BoolSeq*)'
    Je ne comprend pas vraiment d'ou peut provenir l'erreur... Ca viendrait des variable d'environnement ?

    Merci d'avance
    Problème résolu ? N'oubliez pas le bouton ainsi que le "Pertinent". Ça fait du bien au forum.

  2. #2
    Membre averti
    Homme Profil pro
    Architecte technique
    Inscrit en
    Septembre 2006
    Messages
    219
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France

    Informations professionnelles :
    Activité : Architecte technique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2006
    Messages : 219
    Points : 302
    Points
    302
    Par défaut
    Bonjour,

    L'opérateur <<= indiqué comme manquant est celui fonctionnant sur le type Simsat::BoolSeq.
    Celui que tu vois dans le fichier que tu inclus fonctionne pour le type MonNamespace::CharSeq.
    Ce ne sont donc pas les mêmes. Il faut que tu inclus le fichier stub généré depuis l'IDL définissant le type Simsat::BoolSeq.

  3. #3
    Membre habitué Avatar de Colbix
    Profil pro
    Développeur Web
    Inscrit en
    Juin 2006
    Messages
    266
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juin 2006
    Messages : 266
    Points : 150
    Points
    150
    Par défaut
    Coucou,

    Oups, c'est une petit erreur de ma part quand j'ai écrit le message. Voici la vrai déclaration de mon fichier .h généré par omniidl :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    void operator<<=(::CORBA::Any& _a, const Simsat::BoolSeq& _s);
    void operator<<=(::CORBA::Any& _a, Simsat::BoolSeq* _sp);
    _CORBA_Boolean operator>>=(const ::CORBA::Any& _a, Simsat::BoolSeq*& _sp);
    _CORBA_Boolean operator>>=(const ::CORBA::Any& _a, const Simsat::BoolSeq*& _sp);
    Par contre, quand je regarde dans le .cpp, il n'y a presque rien... En tout cas pas l'implémentation des opérateurs, c'est normal ?

    Voici le code qui fait appel à l'oppérateur :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
       CORBA::Any* pAny = new CORBA::Any;
        
        if (NULL != m_pBoolRef)
        {
            Simsat::BoolSeq* pSeq = new Simsat::BoolSeq(1);
            pSeq->length(1);
            (*pSeq)[0] = *m_pBoolRef;
            TRACEB2("CInvokator: returning %s:%u\n", m_name.c_str(), *m_pBoolRef);
            (*pAny) <<= pSeq;
        }
    Je ne vois toujours pas d'où vient le problème :'(. Snif.

    PS : Merci pour ta réponse
    Problème résolu ? N'oubliez pas le bouton ainsi que le "Pertinent". Ça fait du bien au forum.

  4. #4
    Membre averti
    Homme Profil pro
    Architecte technique
    Inscrit en
    Septembre 2006
    Messages
    219
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France

    Informations professionnelles :
    Activité : Architecte technique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2006
    Messages : 219
    Points : 302
    Points
    302
    Par défaut
    Par contre, quand je regarde dans le .cpp, il n'y a presque rien... En tout cas pas l'implémentation des opérateurs, c'est normal ?
    Non, ce n'est pas normal.
    Est-ce que par défaut omniidl ne génère pas les implémentations de ces opérateurs ? Auquel cas, il devrait y avoir une option pour les faire générer...
    Est-ce qu'ils sont générés dans des fichiers séparés (.inl pour inline par exemple. TAO fait cela) ?
    Désolé, je ne connais pas les spécificités d'Omniorb.

  5. #5
    Membre habitué Avatar de Colbix
    Profil pro
    Développeur Web
    Inscrit en
    Juin 2006
    Messages
    266
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juin 2006
    Messages : 266
    Points : 150
    Points
    150
    Par défaut
    En effet, il met les opérateurs dans un fichier cc qui est généré en même temps que mon cpp et mon h.

    Merci beaucoup, ca me permet de chercher comment résoudre mon pbl.

    +
    Problème résolu ? N'oubliez pas le bouton ainsi que le "Pertinent". Ça fait du bien au forum.

  6. #6
    Membre habitué Avatar de Colbix
    Profil pro
    Développeur Web
    Inscrit en
    Juin 2006
    Messages
    266
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juin 2006
    Messages : 266
    Points : 150
    Points
    150
    Par défaut
    Re coucou :s,

    J'ai des problèmes de "not defined" dans mon fichier .cc
    Il me dit :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    ‘_Tracker’ in class ‘CORBA::TypeCode’ does not name a type
    ‘class CORBA::Any’ has no member named ‘PR_insert’
    ‘_0RL_tcTrack’ was not declared in this scope
    C'est surtout le premier message qui est le plus important je pense. Les autres découlent de celui là.

    Il me manque des includes ou des librairies ?
    Problème résolu ? N'oubliez pas le bouton ainsi que le "Pertinent". Ça fait du bien au forum.

  7. #7
    Membre habitué Avatar de Colbix
    Profil pro
    Développeur Web
    Inscrit en
    Juin 2006
    Messages
    266
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juin 2006
    Messages : 266
    Points : 150
    Points
    150
    Par défaut
    Concernant le dernier problème, j'ai trouvé la solution : en fait, je générais mes fichier squelette avec un mauvaise version de omniORB (que je croyais désinstallée). J'utilisais la version 4.0.5 de omniORB dans mon projet et je générais les fichiers squelette avec la version 4.0.1...

    Voila, beaucoup de temps perdu pour rien...

    A bientôt et merci pour tes réponses
    Problème résolu ? N'oubliez pas le bouton ainsi que le "Pertinent". Ça fait du bien au forum.

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

Discussions similaires

  1. Template et "undefined reference to operator<<"
    Par coberle dans le forum C++
    Réponses: 15
    Dernier message: 19/03/2013, 09h07
  2. winsock.h : undefined reference...
    Par abraxas dans le forum Dev-C++
    Réponses: 14
    Dernier message: 06/08/2012, 13h42
  3. Compilation de xmms : undefined reference to...
    Par Michaël dans le forum Applications et environnements graphiques
    Réponses: 4
    Dernier message: 04/02/2005, 19h05
  4. undefined reference to `xmlParseFile'
    Par Clemaster dans le forum Autres éditeurs
    Réponses: 2
    Dernier message: 25/06/2004, 20h38
  5. g++ : undefined reference to ...
    Par le_barbu dans le forum Autres éditeurs
    Réponses: 16
    Dernier message: 14/05/2004, 07h23

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