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++/CLI Discussion :

[C++ CLI] Ne compile pas en release a cause d'un symbole manquant


Sujet :

C++/CLI

Mode arborescent

Message pr�c�dent Message pr�c�dent   Message suivant Message suivant
  1. #1
    Candidat au Club
    Inscrit en
    Septembre 2008
    Messages
    3
    D�tails du profil
    Informations forums :
    Inscription : Septembre 2008
    Messages : 3
    Par d�faut [C++ CLI] Ne compile pas en release a cause d'un symbole manquant
    Bonjour,
    Je suis en train d'ecrire une couche de wrapping en C++ CLI pour faire de l'int�rop entre du C++ natif et du C#. J'ai pu sans probl�me �crire mon code qui compile sans soucis en Debug, mais lorsque je passe la solution en mode release j'obtiens l'erreur de link suivante :

    6>Frame.obj : fatal error LNK1237: during code generation, compiler introduced reference to symbol "public: virtual void __thiscall boost::detail::sp_counted_base::destroy(void)" (?destroy@sp_counted_base@detail@boost@@UAEXXZ) defined in module 'bblids.utils.misc.lib(Timer.obj)' compiled with /GL

    J'en ai compris que mon code en C++ CLR appele une m�thode de Boost dans le C++ natif dont le symbole n'existe plus car la passe d'optimisation sur le natif a surement d�cider d'inliner le corps de cette m�thode.

    Selon la doc je dois recompiler le fichier contenant le symbole supprim� avec l'option de link "/INCLUDE:nom_du_symbole_manquant". J'ai essay� avec les valeurs "public: virtual void __thiscall boost::detail::sp_counted_base::destroy(void)" et "boost::detail::sp_counted_base::destroy" mais je n'ai pas r�ussi � r�soudre mon probl�me

    La deuxi�me solution propos�e par msdn est de d�sactiver le flag /GL d'optimisation ce qui n'est �videment pas envisageable, quelqu'un voit il mon erreur svp ? Est ce que j'interprete mal le message ?

    Je met en piece jointe de ce post une partie du code C++ CLI g�n�rant l'erreur : le fichier "Frame.obj" est la source de mes probl�mes (Frame.h et Frame.cpp) et le fichier WrapperSmartPtr.h contient la d�finition d'une classe pour wrapper un boost::shared_ptr dans du CLR. Je pense que le probl�me vient du fait que j'utilise justement dans un de ces fichiers une variable native sur le tas d'un type plus ou moins rattach� a Boost qui induit un appel au destructeur...

    Deuxieme question, si personne ne voit pour la 1ere : existe t'il un logiciel comme ILDASM.EXE mais pouvant lire les fichiers .OBJ g�n�r�s par visual studio de la meme maniere ?

    Je vous remercie d'avance
    Fichiers attach�s Fichiers attach�s

Discussions similaires

  1. [WTK] HelloWorld qui compile pas
    Par metos256 dans le forum Java ME
    R�ponses: 2
    Dernier message: 08/09/2005, 12h35
  2. [Delphi 2005] Librairie Word (Word_TLB) ne compile pas
    Par Brogomil dans le forum API, COM et SDKs
    R�ponses: 7
    Dernier message: 01/08/2005, 10h12
  3. R�ponses: 12
    Dernier message: 15/02/2005, 15h34
  4. R�ponses: 5
    Dernier message: 01/08/2004, 01h11
  5. regsvr32 failed en debug mais pas en release
    Par afan dans le forum DirectX
    R�ponses: 1
    Dernier message: 09/06/2004, 10h32

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