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 :

LNK2019 due a une d�coration abusive :)


Sujet :

Visual C++

Vue hybride

Message pr�c�dent Message pr�c�dent   Message suivant Message suivant
  1. #1
    Membre Expert
    Avatar de prgasp77
    Homme Profil pro
    Ing�nieur en syst�mes embarqu�s
    Inscrit en
    Juin 2004
    Messages
    1 306
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 38
    Localisation : France, Eure (Haute Normandie)

    Informations professionnelles :
    Activit� : Ing�nieur en syst�mes embarqu�s
    Secteur : High Tech - �lectronique et micro-�lectronique

    Informations forums :
    Inscription : Juin 2004
    Messages : 1 306
    Par d�faut LNK2019 due a une d�coration abusive :)
    Bonjour � toutes et � tous.

    Lors de la compilation de mon projet, je ne rencontre aucune erreur, mais lors du linkage ...

    Ma solution se d�compose en deux projets :
    • FreeImage : Directement t�l�charg� de freeimage.sourceforge.net et compil� en library statique (lib)
    • Isys : cr�� par mes soins et utilisant une dizaines de fonctions de FreeImage (10 sur plus de mille, d'o� l'utilisation de bilio statique).


    Dans le main d'Isys je fais figurer
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    #pragma comment(lib, "../common/debug/FreeImage.lib")
    Et dans son en-t�te principale
    Je prends bien entendu le soin de pr�ciser � FreeImage.h qu'elle est utilis�e dans le cadre d'une biblio statique (pas d'imports/exports).


    R�sultat :
    Lors du linkage, pour chaque fonction de FreeImage que j'utilise j'obtiens l'erreur :
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    IsysSnapShot error LNK2019: symbole externe non résolu _FreeImage_Allocate référencé dans la fonction _SaveSnapshot
    [...]

    J'ai donc fait une recherche dans le .lib : il apparait bien ces fonctions, mais elles sont d�cor�es : _FreeImage_Allocate@24
    Je me suis dit : et bien s'il ne s'agit que de �a, ne pr�cisons pas � FreeImage.h que nous l'utilisons pour une lib statique, et d�clarons les "__declspec(dllimport)". R�sultat
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    IsysSnapShot error LNK2019: symbole externe non résolu __imp__FreeImage_Allocate@24 référencé dans la fonction _SaveSnapshot
    [...]

    J'aimerais votre aide pour couper la poire en deux
    Merci.

  2. #2
    R�dacteur
    Avatar de nico-pyright(c)
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    6 414
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 6 414
    Par d�faut
    pour �viter la d�coration, il faut utiliser extern "C"

  3. #3
    Membre Expert
    Avatar de prgasp77
    Homme Profil pro
    Ing�nieur en syst�mes embarqu�s
    Inscrit en
    Juin 2004
    Messages
    1 306
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 38
    Localisation : France, Eure (Haute Normandie)

    Informations professionnelles :
    Activit� : Ing�nieur en syst�mes embarqu�s
    Secteur : High Tech - �lectronique et micro-�lectronique

    Informations forums :
    Inscription : Juin 2004
    Messages : 1 306
    Par d�faut
    Mais o� ?
    (il est d�j� d�clar� autour de la d�finitions des fonctions de FreeImage (Le FreeImage.h qui sert � la compilation du .lib & le FreeImage.h qui sert � d�clarer les fonctions dans le projet Isys - en fait c'est le m�me fichier )

  4. #4
    R�dacteur
    Avatar de farscape
    Homme Profil pro
    D�veloppeur informatique
    Inscrit en
    Novembre 2003
    Messages
    9 055
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes C�te d'Azur)

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

    Informations forums :
    Inscription : Novembre 2003
    Messages : 9 055
    Par d�faut
    sur la declaration du prototype de la fonction, idealement dans le .h de declaration des fonctions qui devrait etre utilis� pour la lib et pour l'application..
    comme dans ce post de la faq:http://c.developpez.com/faq/vc/?page=DLL#MakeDynDll

  5. #5
    Membre Expert
    Avatar de prgasp77
    Homme Profil pro
    Ing�nieur en syst�mes embarqu�s
    Inscrit en
    Juin 2004
    Messages
    1 306
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 38
    Localisation : France, Eure (Haute Normandie)

    Informations professionnelles :
    Activit� : Ing�nieur en syst�mes embarqu�s
    Secteur : High Tech - �lectronique et micro-�lectronique

    Informations forums :
    Inscription : Juin 2004
    Messages : 1 306
    Par d�faut
    C'est ce qui est fait. Pourtant les fonctions dans FreeImage.lib sont d�cor�es.

  6. #6
    Membre Expert
    Avatar de prgasp77
    Homme Profil pro
    Ing�nieur en syst�mes embarqu�s
    Inscrit en
    Juin 2004
    Messages
    1 306
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 38
    Localisation : France, Eure (Haute Normandie)

    Informations professionnelles :
    Activit� : Ing�nieur en syst�mes embarqu�s
    Secteur : High Tech - �lectronique et micro-�lectronique

    Informations forums :
    Inscription : Juin 2004
    Messages : 1 306
    Par d�faut
    Pitit up : personne a une id�e pour emp�cher la d�co ?
    Merci.

Discussions similaires

  1. [Macro]Action echou� due a une macro
    Par Bass_Room dans le forum VBA Access
    R�ponses: 1
    Dernier message: 12/04/2007, 21h40
  2. une autre erreur LNK2019
    Par crossbowman dans le forum C++
    R�ponses: 5
    Dernier message: 25/02/2006, 22h29

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