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++Builder Discussion :

Erreur de compilation sous C++ Builder (en lien avec <complex.h>)


Sujet :

C++Builder

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 3
    Points : 2
    Points
    2
    Par défaut Erreur de compilation sous C++ Builder (en lien avec <complex.h>)
    Bonjour à tous !

    J'ai un os, que je n'arrive pas à résoudre seul. Je m'explique.

    Lorsque j'utilise #include <complex.h> sous C++ Builder de la façon suivante (le code suivant est en C) :

    #include <math.h> /* pour atan */
    #include <complex.h>

    int main()
    {
    double pi = 4*atan(1);
    complex z = cexp(I*pi);
    printf("%f+%f*i\n", creal(z), cimag(z));
    return (0);
    }

    Cela me génère l'erreur suivante :
    [BCC32 Erreur] File1.c(8): E2451 Symbole 'complex' non défini
    [BCC32 Erreur] File1.c(8): E2379 ; manquant dans l'instruction
    [BCC32 Erreur] File1.c(9): E2268 Appel à une fonction non définie 'creal'.


    Je n'arrive pas à comprendre pourquoi le type complex n'est pas reconnu, alors que j'ai inclus la librairie...

    Merci à toutes les bonnes volontés qui pourront me donner leur avis !!!

    Amicalement
    Etienne

    PS : Sous Code::Blocks, cela marche parfaitement...

  2. #2
    Rédacteur
    Avatar de blondelle
    Homme Profil pro
    Inscrit en
    Mars 2006
    Messages
    2 738
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 2 738
    Points : 3 766
    Points
    3 766
    Par défaut
    Salut duportde
    Tape complex dans l'aide BCB tu va avoir tout ce qu'il te faut
    --
    Plutot que d'essayer de réinventer la roue, apprenons à nous en servir

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    78
    Détails du profil
    Informations personnelles :
    Localisation : France, Drôme (Rhône Alpes)

    Informations forums :
    Inscription : Juin 2006
    Messages : 78
    Points : 81
    Points
    81
    Par défaut
    Salut duportde,

    complex est une classe, donc projet C++ obligatoire!
    exemple d'utilisation : complex<double> z(1.2, 3.4);

  4. #4
    Candidat au Club
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 3
    Points : 2
    Points
    2
    Par défaut Précisions
    Bonjour,

    Merci pour vos réponses.
    Je vais préciser un peu mon problème, car je vois que ce n'est pas limpide.

    En fait, j'essaye d'importer dans C++ Builder un projet qui a été compilé sous gcc dans un environnement linux. Le code en est écrit en C, et j'ai donc créé un projet C.

    Sous gcc, la compilation ne pose pas de problème. Le projet utilise entre autres la librairie <complex.h>, qui est compatible avec le standard (la norme) C99.

    Mais lorsque je passe sous C++ Builder (Codegear Rad Studio 5.0 2007 pour être plus précis), il ne reconnaît pas les types complexes et les fonctions complexes de cette librairie...

    J'ai regardé ce que contenait la librairie nommée "complex" dans le fichier d'install de C++ Builder, mais ça ne correspond pas aux types et fonctions complexes standards en C.

    Que faire? Comment surmonter ce problème d'incompatibilité entre deux environnements de développement, mais surtout entre deux compilateurs différents?

    Merci d'avance pour votre aide ! Ce problème me fait piétiner dans l'avancement de mon stage, et il ne me reste plus beaucoup de temps pour finir...

    Amicalement
    Etienne

  5. #5
    Rédacteur
    Avatar de blondelle
    Homme Profil pro
    Inscrit en
    Mars 2006
    Messages
    2 738
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 2 738
    Points : 3 766
    Points
    3 766
    Par défaut
    Tu a un fichier complex.h dans les includes de BCB, je pense comme engrobel tu va devoir modifier ton code comme il te l'indique en exemple
    --
    Plutot que d'essayer de réinventer la roue, apprenons à nous en servir

  6. #6
    Candidat au Club
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 3
    Points : 2
    Points
    2
    Par défaut Merci
    Bonjour !

    En effet, je ne vais pas pouvoir y échapper...
    J'ai contacté le support de C++ Builder, qui me disent que le C99 est une évolution du C qui comporte trop de nouveautés pour être compatible avec C++ Builder...
    Je vais donc devoir me débrouiller autrement, et modifier le code.
    Merci de votre aide !
    Cordialement
    Etienne

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

Discussions similaires

  1. Réponses: 4
    Dernier message: 10/07/2006, 19h23
  2. Réponses: 1
    Dernier message: 06/07/2006, 11h19
  3. erreur de compilation sous linux
    Par petdelascar dans le forum C
    Réponses: 11
    Dernier message: 21/12/2005, 20h10
  4. Réponses: 6
    Dernier message: 21/12/2005, 14h28
  5. erreur de compilation sous DEV-C++
    Par felicity dans le forum C
    Réponses: 5
    Dernier message: 19/12/2005, 19h59

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