none
LNK2019 - Locinfo RRS feed

  • Question

  • Bonjour,

    Je suis sous VC8 et tente d'intégrer une bibliothèque. J'ai bien rajouté les chemins pour trouver les include et le fichier lib de cette bibliothèque, elle est également rajoutée en dépendance supplémentaire. La bibliothèque a la même utilisation des MFC (en bibliothèque static) et le même mode runtime (multithread). Lorsque je tente de compiler, j'ai une erreur au niveau de l'éditeur de lien. Il s'agit d'une erreur LNK2019 pour un élement Locinfo. Je n'ai pas trouvé d'information sur un tel élément.

    J'ai bien rajouté les bibliothèques nécessaire pour celle que je souhaite rajouté (elle se basse sur OpenCV).

    Est-il possible de me renseigner sur la nature de cette élément ? A quoi sert-il ?

    Et de m'aiguiller sur l'origine de mon erreur ?

    Je vous remercie d'avance

    PS message d'erreur :

    error LNK2019: symbole externe non résolu "public: static void __cdecl std::_Locinfo::_Locinfo_ctor(class std::_Locinfo *,class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const &)" (?_Locinfo_ctor@_Locinfo@std@@SAXPAV12@ABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@2@@Z) référencé dans la fonction "public: __thiscall std::_Locinfo::_Locinfo(class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const &)" (??0_Locinfo@std@@QAE@ABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@1@@Z)

    lundi 13 août 2012 07:38

Réponses

  • Je crois qu'il s'agit d'un bug de Visual Studio 2005 (VC8 est bien VS 2005 ?) (voir http://social.msdn.microsoft.com/Forums/en/vclanguage/thread/4195d83e-d594-4b7b-bd39-e0f8dd4693d7 ). Le symbole Locinfo est absent de la librairie C/C++ dans Visual Studio 2005.

    Le plus simple serait d'utiliser une version plus récente de Visual C++. Si vous utilisez les MFC vous devez utiliser une version payante (Visual C++ express ne contient pas les MFC).

    Une autre solution (risquée) est de récupérer le code de l'objet Locinfo, et d'ajouter ce code à votre projet. Cette solution n'est pas très élégante ni très simple. Visual Studio fournit ce code, dans le dossier vc/crt/src/locale0.cpp

    Mais je me demande si la bibliothèque (statique ?) que vous intégrez est bien compilée avec VS2005. Si ce n'est pas le cas, vous risquez de rencontrez d'autres problèmes. Il n'est vraiment pas conseillé de compiler des librairies avec des versions différentes de VS.



    dimanche 19 août 2012 23:53
    Auteur de réponse

Toutes les réponses

  • Je crois qu'il s'agit d'un bug de Visual Studio 2005 (VC8 est bien VS 2005 ?) (voir http://social.msdn.microsoft.com/Forums/en/vclanguage/thread/4195d83e-d594-4b7b-bd39-e0f8dd4693d7 ). Le symbole Locinfo est absent de la librairie C/C++ dans Visual Studio 2005.

    Le plus simple serait d'utiliser une version plus récente de Visual C++. Si vous utilisez les MFC vous devez utiliser une version payante (Visual C++ express ne contient pas les MFC).

    Une autre solution (risquée) est de récupérer le code de l'objet Locinfo, et d'ajouter ce code à votre projet. Cette solution n'est pas très élégante ni très simple. Visual Studio fournit ce code, dans le dossier vc/crt/src/locale0.cpp

    Mais je me demande si la bibliothèque (statique ?) que vous intégrez est bien compilée avec VS2005. Si ce n'est pas le cas, vous risquez de rencontrez d'autres problèmes. Il n'est vraiment pas conseillé de compiler des librairies avec des versions différentes de VS.



    dimanche 19 août 2012 23:53
    Auteur de réponse
  • Bonjour, J'ai pu compiler la bibliothèque sous VC8 (2005) est cela fonctionne correctement. Merci pour les informations concernant Locinfo. Je vous remercie,
    vendredi 24 août 2012 07:21