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

Bibliothèques Discussion :

probleme boost::ublas


Sujet :

Bibliothèques

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau candidat au Club
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    1
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 1
    Par défaut probleme boost::ublas
    Bonjour,

    Je souhaite utiliser certaine “library“ boost non compatible avec visual 6.0. (compilateur que je doit garder pour le moment). Comme j'ai besoin des classes de boost que dans certaines fonctions j'ai pris pour habitude de créer une librairie qui utilise boost que je compile avec gcc (avec cygwin ou MinGW). Puis cette “library“ est utilisée dans mon programme compilé sous visual 6.0. Ce système fonctionnait bien.

    Lorsque j'inclus le fichier <boost/numeric/ublas/matrix.hpp> dans ma librairie, gcc compile normalement, j'utilise alors la librairie dans visual 6 qui me produit les erreurs suivantes*:

    error LNK2001: unresolved external symbol __ZNSt8ios_base4InitD1Ev
    error LNK2001: unresolved external symbol __ZNSt8ios_base4InitC1Ev

    Lorsque j'ouvre ma “library” je retrouve effectivement ces appelles. Cependant, je ne sais pas d'ou ces liens provienne ni comment franchir ce problème.

    PS: ne voyant que peut de solution j'ai posté ce mail sur de nombreux de forums...

  2. #2
    Rédacteur/Modérateur
    Avatar de JolyLoic
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    5 463
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2004
    Messages : 5 463
    Par défaut
    Préliminaire : Tout ça est un domaine que je connais peu, à prendre sous caution.

    Déjà, savoir ce qu'est ce nom : __ZNSt8ios_base4InitD1Ev

    Ca ressemble à un nom décoré pour une fonction qui pourrait se nommer ios_base::Init (je ne connais pas le schémas de name mangling de gcc).

    Si tel est le cas, j'en conclue que dans ton code, tu cherches à utiliser des flux, alors qu'avant non. Et donc la bibliothèque de flux de gcc s'attend à être liée avec des morceaux d'elle même lors de la compilation finale, ce qui n'est pas le cas.

    Rien ne peut garantir qu'une bibliothèque faite par gcc soit utilisable par msvc6 (ni d'ailleurs entre deux compilateurs C++ quelconque (par exemple entre deux versions de msvc, il n'y a pas compatibilité, ni entre deux versions majeures de gcc), bien qu'une initiative d'ABI commune puisse un jour faire évoluer la situation).

    Il y a plus grave : Si tu utilises par exemple une string dans l'interface entre la bibliothèque et ton programme, rien ne te dis que cette classe soit définie de la même façon des deux côtés. Tu violes l'ODR.

    Comment faire alors ? A mon sens, le seule garantie de compatibilité que tu as sous windows est en utilisant une DLL dont l'interface est uniquement écrite en C.

    Une autre façon pourrait être une compatibilité binaire : Ton programme en vc++ communique avec un programme gcc à l'aide de fichiers, pipes, mémoire partagée, réseau...

    Enfin, une version 1.32 de boost::ublas supporte VC6. Peut-être est-ce une possibilité pour toi ? (ils disent avec STL-Port, mais je l'ai utilisée sans problèmes avec la STL de vc++6).
    Ma session aux Microsoft TechDays 2013 : Développer en natif avec C++11.
    Celle des Microsoft TechDays 2014 : Bonnes pratiques pour apprivoiser le C++11 avec Visual C++
    Et celle des Microsoft TechDays 2015 : Visual C++ 2015 : voyage à la découverte d'un nouveau monde
    Je donne des formations au C++ en entreprise, n'hésitez pas à me contacter.

  3. #3
    Expert confirmé

    Homme Profil pro
    pdg
    Inscrit en
    Juin 2003
    Messages
    5 756
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : pdg

    Informations forums :
    Inscription : Juin 2003
    Messages : 5 756
    Billets dans le blog
    3
    Par défaut
    Autre solution, meilleure à mon avis : abandonner VC++ 6. C'est un très vieux compilateur, et la version 8 (la 7 et la 7.1 sont aussi sorties depuis...) est gratuite...

  4. #4
    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
    e souhaite utiliser certaine “library“ boost non compatible avec visual 6.0. (compilateur que je doit garder pour le moment).

  5. #5
    Expert confirmé

    Homme Profil pro
    pdg
    Inscrit en
    Juin 2003
    Messages
    5 756
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : pdg

    Informations forums :
    Inscription : Juin 2003
    Messages : 5 756
    Billets dans le blog
    3
    Par défaut
    J'ai vu... mais j'essaye de l'encourager, tout sera plus facile.

Discussions similaires

  1. probleme boost async_write et handle
    Par Katian dans le forum Débuter
    Réponses: 2
    Dernier message: 26/02/2012, 22h06
  2. Boost.uBlas et sous-vecteur de matrice
    Par Le Farfadet Spatial dans le forum Boost
    Réponses: 11
    Dernier message: 30/04/2008, 23h25
  3. boost::ublas étrangement lent.
    Par Bakura dans le forum Boost
    Réponses: 25
    Dernier message: 03/08/2007, 11h57
  4. [BOOST] utilisation de boost uBLAS non compile avec visual c++
    Par le_voisin dans le forum Autres éditeurs
    Réponses: 5
    Dernier message: 06/09/2006, 22h03
  5. probleme de headers avec uBLAS de BOOST
    Par le_voisin dans le forum Boost
    Réponses: 6
    Dernier message: 06/09/2006, 18h15

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