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

Visual C++ Discussion :

Visual Studio 2005 + librarie math Newmat


Sujet :

Visual C++

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Février 2007
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 14
    Par défaut Visual Studio 2005 + librarie math Newmat
    Bonjour,

    Je suis un peu en galère....
    J'ai un projet visual 2003 qui utilise une librarie de mathematic (newmat) pour faire de calcul de matrice et autre.
    Le projet 2003 fonctionne correctement (a vrai dire je ne sais pas trop comment), il arrive a trouver la librairie et a linker correctement.

    Je veux porter mon projet sur visual 2005, mais le probleme c'est que le projet ne trouve plus la librarie newmat au moment du link. Il trouve correctement les .h mais apparamment pas la libraire.

    J'ai essayé plusieurs solutions :
    - ajouter newmat.lib dans les "additionnal dependencies" du projet
    - utiliser les #pragma(lib, chemin de la lib)
    - mettre le chemin de la lib dans les chemin de visual studio (tools/option/VC directories)

    Mais sans reussite.

    je voudrai reussir a linker proprement avec cette librairie. Comment dois-je faire ?

    Merci pour votre aide.

    PS : Voila les traces de build
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    World.obj : warning LNK4248: unresolved typeref token (0100001E) for 'NEWMAT.MatrixColX'; image may not run
    Toolbox.obj : warning LNK4248: unresolved typeref token (01000015) for 'NEWMAT.MatrixColX'; image may not run
    PedestrianModel.obj : warning LNK4248: unresolved typeref token (0100001E) for 'NEWMAT.MatrixColX'; image may not run
    Car.obj : warning LNK4248: unresolved typeref token (0100001B) for 'NEWMAT.MatrixColX'; image may not run
    World.obj : warning LNK4248: unresolved typeref token (0100001F) for 'NEWMAT.MatrixRowCol'; image may not run
    Toolbox.obj : warning LNK4248: unresolved typeref token (01000016) for 'NEWMAT.MatrixRowCol'; image may not run
    PedestrianModel.obj : warning LNK4248: unresolved typeref token (0100001F) for 'NEWMAT.MatrixRowCol'; image may not run
    Car.obj : warning LNK4248: unresolved typeref token (0100001C) for 'NEWMAT.MatrixRowCol'; image may not run
    newmat11.lib(newmatnl.obj) : error LNK2001: unresolved external symbol "class std::basic_ostream<char,struct std::char_traits<char> > std::cout" (?cout@std@@3V?$basic_ostream@DU?$char_traits@D@std@@@1@A)
    newmat11.lib(myexcept.obj) : error LNK2001: unresolved external symbol "class std::basic_ostream<char,struct std::char_traits<char> > std::cout" (?cout@std@@3V?$basic_ostream@DU?$char_traits@D@std@@@1@A)
    newmat11.lib(newmatnl.obj) : error LNK2001: unresolved external symbol "private: static int std::locale::id::_Id_cnt" (?_Id_cnt@id@locale@std@@0HA)
    newmat11.lib(newmatnl.obj) : error LNK2001: unresolved external symbol "struct std::_DebugHeapTag_t const std::_DebugHeapTag" (?_DebugHeapTag@std@@3U_DebugHeapTag_t@1@B)
    newmat11.lib(newmatnl.obj) : error LNK2019: unresolved external symbol "public: void __thiscall std::_String_base::_Xran(void)const " (?_Xran@_String_base@std@@QBEXXZ) referenced in function "public: class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > & __thiscall std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >::assign(class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const &,unsigned int,unsigned int)" (?assign@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@ABV12@II@Z)
    newmat11.lib(newmatnl.obj) : error LNK2019: unresolved external symbol "public: void __thiscall std::_String_base::_Xlen(void)const " (?_Xlen@_String_base@std@@QBEXXZ) referenced in function "protected: bool __thiscall std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >::_Grow(unsigned int,bool)" (?_Grow@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@IAE_NI_N@Z)

  2. #2
    Membre Expert
    Avatar de Ti-R
    Homme Profil pro
    Ingénieur R&D
    Inscrit en
    Avril 2003
    Messages
    1 683
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2003
    Messages : 1 683
    Par défaut
    Cliquer sur ton project, ensuite

    "Properties->Configuration Properties->C/C++->General->Additionnal Include Directories"

    Et à cet endroit il suffit de placer en relatif ou absolue le chemin du répertoire de ta bibliothèque.

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Février 2007
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 14
    Par défaut
    J'ai essayé mais cela ne marche pas non plus

    Je vois vraiment pas comment faire

  4. #4
    Membre Expert
    Avatar de Ti-R
    Homme Profil pro
    Ingénieur R&D
    Inscrit en
    Avril 2003
    Messages
    1 683
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2003
    Messages : 1 683
    Par défaut
    Tu es sur que les .h correspondent au .lib ?

    Sinon un autre problème est liée à "class std::basic_ostream" et non pas à
    newmat11.lib qui semble bien inclu
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    newmat11.lib(newmatnl.obj) : error LNK2001: unresolved external symbol "class std::basic_ostream<char,struct std::char_traits<char> > std::cout" (?cout@std@@3V?$basic_ostream@DU?$char_traits@D@std@@@1@A)
    Donc il faut lier avec la MFC

    "Properties->Configuration Properties->General->Use of MFC",

    Sélectionner
    "Use MFC in a shared DLL" ou "Use Standard Windows Libraries"
    Cela dépend si tu utilises "stdafx" ou non

    Sinon à vérifier que tu as bien

    "Properties->Configuration Properties->C/C++->Code Generation->Runtime Library:Multi-threaded Debug DLL (/MDd)"

    Avec tout cela peut être que ton projet ira mieux, mais ensuite dur de "deviner"

  5. #5
    Expert éminent
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 395
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France

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

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 395
    Par défaut
    Euh...
    cout n'est pas dans MFC, mais dans la STL...

    Et par défaut, un projet sous Visual est TOUJOURS lié à la STL, sauf si on ajoute un paramètre du genre /NODEFAULTLIB...
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  6. #6
    Membre Expert
    Avatar de Ti-R
    Homme Profil pro
    Ingénieur R&D
    Inscrit en
    Avril 2003
    Messages
    1 683
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2003
    Messages : 1 683
    Par défaut
    Oui un projet sous Visual est toujours lié à une version de la STL, c'est vrai, et lorsque je me relis, je me dis que j'aurais du me coucher plus tôt hier soir...

    Comme le dit Médinoc

    A vérifier:
    "Properties->Configuration Properties->Linker->Input->Ignore Specific Library"

Discussions similaires

  1. Réponses: 3
    Dernier message: 29/08/2007, 16h38
  2. [IDE] Visual Studio 2005 Express
    Par Louis-Guillaume Morand dans le forum Général Dotnet
    Réponses: 130
    Dernier message: 23/12/2006, 15h08
  3. En attendant la relève de Visual studio 2005…
    Par farscape dans le forum MFC
    Réponses: 22
    Dernier message: 24/11/2005, 14h27
  4. Réponses: 3
    Dernier message: 18/08/2005, 19h09

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