problème de compilation
Répondre à la discussion
Affichage des résultats 1 à 4 sur 4

problème de compilation



  1. #1
    invite339a0de8

    problème de compilation


    ------

    Bonjour,

    depuis hier j'arrive pas à compiler un programme que j'ai telecharger, c'est le programme de cgen et ccirc: http://www.eecg.toronto.edu/~jayar/s...Cgen/Cgen.html

    je travaille sur debian et j'ai gcc 4.1.2

    quand je compile j'ai cette erreur :

    gcc -c -I. -Dx86_64 -DLinux -DGEN -pedantic -Wall -O3 -o node_splitter.o node_splitter.cpp
    fp.h:27: error: declaration of ‘double log2(double)’ throws different exceptions
    /usr/include/bits/mathcalls.h:145: error: from previous declaration ‘double log2(double) throw ()’
    fp.h:28: error: declaration of ‘double exp2(double)’ throws different exceptions
    /usr/include/bits/mathcalls.h:142: error: from previous declaration ‘double exp2(double) throw ()’
    make: *** [node_splitter.o] Error 1


    vous pouvez m'aider SVP ?
    merci

    ps : voila ci-joint les deux fichier fp.h et mathcalls.h fp.txtmathcalls.txt

    -----
    Fichiers attachés Fichiers attachés

  2. #2
    polo974

    Re : probleme de complilation

    mets juste en commentaire les lignes 27 et 28 de fp.h
    Jusqu'ici tout va bien...

  3. #3
    invite339a0de8

    Re : probleme de complilation

    non c bon j'ai régler mon probleme merci

  4. #4
    invite4492c379

    Re : problème de compilation

    Hello,

    bon les sources sont compilables sur plusieurs plateformes, et l'auteur au lieu d'utiliser les outils adaptés comme la suite autotools a fait son propre petit truc.

    Pour cette portion de code il redéfinit d'une autre manière deux fonctions log2 et exp2.

    Tu as le choix, mais le plus simple pour compiler serait de mettre en comment les redéfinitions de l'auteur :

    Dans fp.h:
    Code:
    #include <math.h>
    
    
    
    
    //double log2(double x);
    //double exp2(double x);
    
    
    #define rint(x) (((x-floor(x)) < 0.5) ? floor(x) : ceil(x))
    et dans fp.cpp :
    Code:
    double nint(double x)
    {
      return (rint(x));
    }
    /*
    double log2(double x)
    {
      return (log(x)/log((double) 2.0));
    }
    double exp2(double x)
    {
      return (exp(x * log((double) 2.0)));
    }
    */


    L'autre solution consiste à ne pas utiliser les fonctions définies dans matcall.h. Si tu regardes bien tu as dans mathcall.h

    Code:
    #ifdef __USE_ISOC99
    __BEGIN_NAMESPACE_C99
    /* Compute base-2 exponential of X.  */
    __MATHCALL (exp2,, (_Mdouble_ __x));
    
    
    /* Compute base-2 logarithm of X.  */
    __MATHCALL (log2,, (_Mdouble_ __x));
    __END_NAMESPACE_C99
    #endif
    Avant d'inclure mathcall.h tu fais quelquechose du genre :
    Code:
    #ifdef __USE_ISOC99
    #  define __ISOC99_WAS_IN_USE
    #  undef __USE_ISOC99
    #endif
    #include <mathcall.h>
    #ifndef __ISOC99_WAS_IN_USE
    #  define __USE_ISOC99
    #  undef __ISOC_WAS_IN_USE
    #endif
    Dernière modification par JPL ; 06/04/2012 à 15h40. Motif: Titre

  5. A voir en vidéo sur Futura

Discussions similaires

  1. Probleme de compilation programme en C
    Par paolo123 dans le forum Électronique
    Réponses: 15
    Dernier message: 14/10/2011, 11h43
  2. MPLAB problème de compilation
    Par invite01336075 dans le forum Électronique
    Réponses: 11
    Dernier message: 30/06/2010, 15h32
  3. problème compilation C
    Par inviteb6dc9791 dans le forum Logiciel - Software - Open Source
    Réponses: 1
    Dernier message: 06/04/2010, 23h21
  4. Problème compilation 16F877A
    Par invite947c2c97 dans le forum Électronique
    Réponses: 18
    Dernier message: 03/08/2009, 15h40
  5. Problème de compilation
    Par invite58110dc5 dans le forum Logiciel - Software - Open Source
    Réponses: 0
    Dernier message: 15/09/2008, 04h07