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 :

compilation de code


Sujet :

C++

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    65
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 65
    Par défaut compilation de code
    Bonjour!

    Voila je veux compiler plusieurs codes source sous linux

    Voici le code source de ces application :
    http://www.uni-koblenz.de/~lb/lb_dow...d_irl_src.html
    J'arrive pas à le compiler !(ca passe pas au niveau make )

    Est ce quelqu'un peut le compiler pour moi svp et voir quel est le problème ?

    merci !

  2. #2
    Membre averti
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    65
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 65
    Par défaut
    voici le message qu'il me sort :

    root@ordi:/home/x/src/irllib# make
    g++ -I. -DDEBUG -c adverror.cpp -I. -o debug/adverrord.o
    ./adverror.h:55: erreur: looser throw specifier for ‘virtual advException::~advException()’
    /usr/include/c++/4.0.2/exception:58: erreur: overriding ‘virtual std::exception::~exception() throw ()’
    make: *** [debug/adverrord.o] Erreur 1

  3. #3
    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
    Le destructeur et la fonction membre what() de std:exception déclarent ne pas lever d'exception, il faut donc que ta classe qui en dérive le fasse également (en ajoutant "throw ()" derrière les déclarations de ces deux fonctions).

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    65
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 65
    Par défaut
    bonjour,
    merci pour votre réponse :
    voici une partie de code (les deux classe ) ou j'ai ajouté throw();
    class advException: std::exception
    {
    private:
    std::string message;
    public:
    //! The constructor creates a new exception with message msg
    /*!
    \param msg message text
    */


    advException(const char* msg = "") {message=msg;};

    //! Destructor

    virtual ~advException() {};
    //! The method changes the message text of the exception
    /*!
    \param msg new message text
    */


    void setMessage(const char* msg) {message=msg;};
    //! The method returns the message text of the exception

    const char* getMessageStr() const { return message.c_str(); };

    virtual const char* what() { return getMessageStr(); };

    throw ();
    };


    //! Exception of this type are thrown by advAssert.
    /*! advAssert(cond) throws a exception of type advAssertion if condition cond is false.
    \author Patrick Sturm
    */


    class advAssertion: public advException
    {
    public:
    advAssertion(const char* cond, const char* file, int line)
    {
    char newMessage[2000];
    sprintf(newMessage,"Assertion (Cond[%s], File[%s], Line [%i]",cond,file,line);
    setMessage(newMessage);
    /*ostrstream msgStream;
    msgStream << "Assertion (Cond[" << cond << "], File[" << file << "], Line [" << line << "])" << ends;
    setMessage(msgStream.str());
    msgStream.freeze(false);*/

    };
    };

    extern void _advAssert(const char * __cond, const char * __file, int __line);
    ....
    il me fait cette erreur
    root@ordi:/home/x/src/irllib# make
    g++ -I. -DDEBUG -c adverror.cpp -I. -o debug/adverrord.o
    ./adverror.h:67: erreur: expected unqualified-id before ‘throw’
    ./adverror.h:54: erreur: looser throw specifier for ‘virtual advException::~advException()’
    /usr/include/c++/4.0.2/exception:58: erreur: overriding ‘virtual std::exception::~exception() throw ()’
    make: *** [debug/adverrord.o] Erreur 1

  5. #5
    Rédacteur

    Avatar de Matthieu Brucher
    Profil pro
    Développeur HPC
    Inscrit en
    Juillet 2005
    Messages
    9 810
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Développeur HPC
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2005
    Messages : 9 810
    Par défaut
    Ce n'est pas une fonction membre à rajouter, c'est une spécification sur une fonction membre.

    Dans la déclaration d'une fonction membre, tu mets le throw() comme si tu indiquais un const :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    maFonction() throw()
    {
    /// Mon corps
    }

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    65
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 65
    Par défaut
    c encore moi
    je pense que ca marche cette foi mais il reste une erreur ! je pense que c un problème de bibliotheque ! il ne connais la fonction abs pourtant on a mit dans le prog #include <math.h>
    comment je peut resoudre ca ?svp

    root@ordi:/home/x/src/irllib# make
    g++ -I. -DDEBUG -c adverror.cpp -I. -o debug/adverrord.o
    g++ -I. -DDEBUG -c ipccolor.cpp -I. -o debug/ipccolord.o
    Dans le fichier inclus à partir de ipccolor.cpp:20:
    ./ipccolor.h:50:7: attention : pas de retour chariot à la fin du fichier
    g++ -I. -DDEBUG -c ipchsvclassiccolsim.cpp -I. -o debug/ipchsvclassiccolsimd.o
    Dans le fichier inclus à partir de ./ipchsvclassiccolsim.h:23,
    à partir de ipchsvclassiccolsim.cpp:21:
    ./ipccolor.h:50:7: attention : pas de retour chariot à la fin du fichier
    ./ipchsvclassiccolsim.h: In member function ‘bool ipcClassicHSVSimilarityFunction::colorSimilar(int, int, int, int, int, int) const’:
    ./ipchsvclassiccolsim.h:80: erreur: ‘abs’ was not declared in this scope
    ./ipchsvclassiccolsim.h: In member function ‘int ipcClassicHSVSimilarityFunction::compareColors(int, int, int, int, int, int, int, int, int) const’:
    ./ipchsvclassiccolsim.h:96: erreur: ‘abs’ was not declared in this scope
    make: *** [debug/ipchsvclassiccolsimd.o] Erreur 1

Discussions similaires

  1. compilation de code source
    Par lejum dans le forum Général Java
    Réponses: 11
    Dernier message: 20/03/2006, 20h13
  2. Compiler du code Java via Java
    Par sozie9372 dans le forum Langage
    Réponses: 2
    Dernier message: 12/01/2006, 10h14
  3. Probleme en compilant le code avec C2.EXE ?!?!?
    Par angelevil dans le forum VB 6 et antérieur
    Réponses: 4
    Dernier message: 17/11/2005, 16h13
  4. [Servlet][Compilation] Erreur de compil dans code servlet
    Par gandalf_le_blanc dans le forum Servlets/JSP
    Réponses: 3
    Dernier message: 13/05/2004, 10h17
  5. Compiler un code sous windows
    Par KORTA dans le forum Choisir un environnement de développement
    Réponses: 2
    Dernier message: 30/09/2003, 16h53

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