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 :

[XE7] Utilisation de la bibliothèque Boost


Sujet :

C++Builder

  1. #1
    Membre éclairé
    Avatar de Wachter
    Homme Profil pro
    Développeur
    Inscrit en
    Octobre 2008
    Messages
    404
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur

    Informations forums :
    Inscription : Octobre 2008
    Messages : 404
    Points : 734
    Points
    734
    Par défaut [XE7] Utilisation de la bibliothèque Boost
    Bonjour,

    Je voudrais utiliser la bibliothèque Boost et bizarrement j'ai un message d'erreur lors de la compilation. J'ai simplement ajouté un #include <boost/algorithm/minmax.hpp> pour faire un test mais ça ne compile pas...

    Auriez-vous une idée ?

    Nom : Boost.png
Affichages : 242
Taille : 121,2 Ko
    Code parrain certification Voltaire : NTMPH759

  2. #2
    Membre éclairé
    Avatar de Wachter
    Homme Profil pro
    Développeur
    Inscrit en
    Octobre 2008
    Messages
    404
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur

    Informations forums :
    Inscription : Octobre 2008
    Messages : 404
    Points : 734
    Points
    734
    Par défaut
    Bonjour,
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    #include <fmx.h>
    #pragma hdrstop
     
    #include "Unit1.h"
     
    #include <boost/multiprecision/float128.hpp>
     
    //---------------------------------------------------------------------------
    #pragma package(smart_init)
    #pragma resource "*.fmx"
    TForm1 *Form1;
    //---------------------------------------------------------------------------
    __fastcall TForm1::TForm1(TComponent* Owner)
        : TForm(Owner)
    {
      float128 nb = 0.123456789987654321;
    }
    Je me réfère à cette page. J'ai créé une application 64-bits et j'ai ajouté le header #include <boost/multiprecision/float128.hpp>. Après compilation, j'obtiens ces messages d'erreurs :
    [bcc64 Erreur] float128.hpp(30): "Sorry compiler is neither GCC, not Intel, don't know how to configure this header."
    [bcc64 Erreur] float128.hpp(122): utilisation de l'identificateur 'float128_type' non déclaré
    [bcc64 Erreur] float128.hpp(137): nom de type 'float128_type' inconnu
    [bcc64 Erreur] float128.hpp(147): utilisation de l'identificateur 'float128_type' non déclaré
    [bcc64 Erreur] float128.hpp(147): aucun type nommé 'value' dans the global namespace
    Le fichier float128.hpp s'ouvre et le curseur s'arrête à :
    #if !defined(BOOST_MP_USE_FLOAT128) && !defined(BOOST_MP_USE_QUAD)
    # error "Sorry compiler is neither GCC, not Intel, don't know how to configure this header."
    #endif
    Je suis tombé sur cette page qui parle de l'utilisation de float128 et de l'ajout de BOOST_MP_USE_FLOAT128, mais je ne comprends pas comment l'ajouter.
    • When using the Intel compiler, the underlying type defaults to float128 if it's available and _Quad if not. You can override the default by defining either BOOST_MP_USE_FLOAT128 or BOOST_MP_USE_QUAD.

    Si vous avez des pistes, je suis preneur.
    Code parrain certification Voltaire : NTMPH759

  3. #3
    Membre confirmé
    Homme Profil pro
    Développeur multiplateformes
    Inscrit en
    Mars 2003
    Messages
    273
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Développeur multiplateformes
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2003
    Messages : 273
    Points : 628
    Points
    628
    Par défaut
    Avez-vous bien déclaré le chemin d'accès de la bibliothèque Boost dans Projet>Option>C++>Chemin d'inclusion ?
    Sous XE10 ce chemin pourra être : C:\Program Files (x86)\Embarcadero\Studio\17.0\include\boost_1_39

  4. #4
    Membre éclairé
    Avatar de Wachter
    Homme Profil pro
    Développeur
    Inscrit en
    Octobre 2008
    Messages
    404
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur

    Informations forums :
    Inscription : Octobre 2008
    Messages : 404
    Points : 734
    Points
    734
    Par défaut
    Oui, j'ai bien ajouté le chemin de la bibliothèque Boost : C:\Program Files (x86)\Embarcadero\Studio\15.0\include\boost_1_55. Dans mon application, j'utilise la multiprécision qui est disponible uniquement dans boost_1_55, ce qui m'a obligé à créer une application 64 bits. Si vous pouvez essayer de compiler ce code, ça serait sympa !

    Je mets le code ici et je joins également le projet minimaliste :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    #include <fmx.h>
    #pragma hdrstop
     
    #include "Unit1.h"
    #include <boost/multiprecision/float128.hpp>
    //---------------------------------------------------------------------------
    #pragma package(smart_init)
    #pragma resource "*.fmx"
    TForm1 *Form1;
    //---------------------------------------------------------------------------
    __fastcall TForm1::TForm1(TComponent* Owner)
        : TForm(Owner)
    {
      using namespace boost::multiprecision;
      float128 pi = 3.1415926535897932384626433832795028841971693993751058Q;
      ShowMessage(pi);
    }
    Fichiers attachés Fichiers attachés
    Code parrain certification Voltaire : NTMPH759

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

Discussions similaires

  1. [Lazarus] Problème étrange avec l'utilisation de la fonction StrToFloat
    Par ovni76 dans le forum Lazarus
    Réponses: 7
    Dernier message: 07/09/2014, 18h01
  2. Utilisation de la fonction de déploiement
    Par mchicoix dans le forum XMLRAD
    Réponses: 4
    Dernier message: 01/03/2005, 14h35
  3. [LG]Utilisation de la fonction Random
    Par chloe95 dans le forum Langage
    Réponses: 1
    Dernier message: 01/03/2005, 14h20
  4. Utilisation de la fonction qsort
    Par Jsmeline dans le forum C
    Réponses: 8
    Dernier message: 28/01/2005, 12h40
  5. [LG]librairies : utiliser seulement quelques fonctions
    Par wwwroom dans le forum Langage
    Réponses: 13
    Dernier message: 14/05/2004, 22h50

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