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 .Net 2003]Problème d'édition de liens


Sujet :

Visual C++

  1. #1
    Membre confirmé
    Avatar de Mindiell
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    735
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 735
    Points : 546
    Points
    546
    Par défaut [Visual Studio .Net 2003]Problème d'édition de liens
    Bonjour à tous,

    J'ai le même problème avec lua qu'avec SDL apparemment (cf. un autre post dans la cactégorie SDL) : J'ai des soucis de résolution de lien externe.

    Mon projet se trouve dans un répertoire particulier :
    F:\Mon projet\Developpement\

    Pour me simplifier la vie, j'ai mis mes include et mes libs juste à côté :
    F:\Mon projet\Libs externes\SDL\include
    F:\Mon projet\Libs externes\SDL\lib
    F:\Mon projet\Libs externes\Lua\include
    F:\Mon projet\Libs externes\Lua\lib

    J'ai ensuite rajouté à mon projet les répertoires suivants :
    ..\Libs externes\SDL\include
    ..\Libs externes\Lua\include
    ..\Libs externes\SDL\lib
    ..\Libs externes\Lua\lib

    Et ca ne fonctionne pas : il me marque des erreurs de lien externe. Même en déplacant ces fichiers sous le répertoire du projet, ca ne marche pas.
    J'utilise Visual Studio 2003 .Net. Mon projet est un projet Win32. Ma génération de code est bien Multithread (pour la SDL).

    Je ne comprends vraiment pas...
    Help !
    Mindiell
    "Souvent, femme barrit" - Elephant man

  2. #2
    Rédacteur
    Avatar de Laurent Gomila
    Profil pro
    Développeur informatique
    Inscrit en
    Avril 2003
    Messages
    10 651
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2003
    Messages : 10 651
    Points : 15 920
    Points
    15 920
    Par défaut
    Ben il ne suffit pas de dire à l'éditeur de liens où chercher les bibliothèques, il faut surtout lui dire lesquelles utiliser.

    Options du projet --> linker --> input --> additional dependencies

  3. #3
    Membre confirmé
    Avatar de Mindiell
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    735
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 735
    Points : 546
    Points
    546
    Par défaut
    Mouarf,
    en effet

    Par contre, il y a combat entre mon main (pour la lib SDL) et la lib LIBCMTD.lib. Si je l'ignore, je me retrouve submergé d'erreurs...

    Mon dieu, qu'est-ce que j'ai fait ?
    Mindiell
    "Souvent, femme barrit" - Elephant man

  4. #4
    Rédacteur
    Avatar de Laurent Gomila
    Profil pro
    Développeur informatique
    Inscrit en
    Avril 2003
    Messages
    10 651
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2003
    Messages : 10 651
    Points : 15 920
    Points
    15 920
    Par défaut
    Quel est le message d'erreur exact ?

  5. #5
    Membre confirmé
    Avatar de Mindiell
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    735
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 735
    Points : 546
    Points
    546
    Par défaut
    et hop !

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    msvcrt.lib(ti_inst.obj) : error LNK2005: "private: __thiscall type_info::type_info(class type_info const &)" (??0type_info@@AAE@ABV0@@Z) déjà défini(e) dans LIBCMTD.lib(typinfo.obj)
    msvcrt.lib(ti_inst.obj) : error LNK2005: "private: class type_info & __thiscall type_info::operator=(class type_info const &)" (??4type_info@@AAEAAV0@ABV0@@Z) déjà défini(e) dans LIBCMTD.lib(typinfo.obj)
    msvcrt.lib(MSVCR71.dll) : error LNK2005: _exit déjà défini(e) dans LIBCMTD.lib(crt0dat.obj)
    msvcrt.lib(MSVCR71.dll) : error LNK2005: _fgetc déjà défini(e) dans LIBCMTD.lib(fgetc.obj)
    msvcrt.lib(MSVCR71.dll) : error LNK2005: _fclose déjà défini(e) dans LIBCMTD.lib(fclose.obj)
    msvcrt.lib(MSVCR71.dll) : error LNK2005: _setvbuf déjà défini(e) dans LIBCMTD.lib(setvbuf.obj)
    msvcrt.lib(MSVCR71.dll) : error LNK2005: __isctype déjà défini(e) dans LIBCMTD.lib(isctype.obj)
    LIBCMTD.lib(crt0init.obj) : warning LNK4098: conflit entre la bibliothèque par défaut 'msvcrt.lib' et les autres bibliothèques*; utilisez /NODEFAULTLIB:library
    Debug/pangee.exe : fatal error LNK1169: un ou plusieurs symboles définis à différentes reprises ont été rencontrés
    Mindiell
    "Souvent, femme barrit" - Elephant man

  6. #6
    Rédacteur
    Avatar de Laurent Gomila
    Profil pro
    Développeur informatique
    Inscrit en
    Avril 2003
    Messages
    10 651
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2003
    Messages : 10 651
    Points : 15 920
    Points
    15 920
    Par défaut
    Il y a un conflit entre les versions de la CRT utilisées par les bibliothèques avec lesquelles tu lies.

    Options du projet --> C/C++ --> Code generation --> Runtime library

    Essaye "Multithreaded debug DLL" en debug, et "Multithreaded DLL" en release.

  7. #7
    Membre confirmé
    Avatar de Mindiell
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    735
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 735
    Points : 546
    Points
    546
    Par défaut
    Ouarf, ca semble marcher. J'avais mis "Debug Multithread" sans "DLL". Je te confirme ca ce soir !
    Mindiell
    "Souvent, femme barrit" - Elephant man

  8. #8
    Membre confirmé
    Avatar de Mindiell
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    735
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 735
    Points : 546
    Points
    546
    Par défaut
    Bon, j'y pige rien. Rien ne marche, j'ai l'impression de n'arriver à rien. Je suis reparti sur un projet Win32 console. Ca marche en debug, sans warning, et tout. Mais en release, tout plante à nouveau (16 liens extenres non résolus).

    Je sens que je vais abandonner ce compilo...

    Pour lua, c'est la même chose. Sauf que c'est pas nickel en Debug, il me rajoute 2 erreurs de cast d'un fichier VC7 :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    c:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\include\xlocnum(543):
    warning C4312: 'cast de type' : la conversion de 'uintptr_t' en 'void *' d'une taille supérieure
    Bref, je crois que Visual Studio .Net c'est pas pour moi !
    Mindiell
    "Souvent, femme barrit" - Elephant man

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

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

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 379
    Points : 41 573
    Points
    41 573
    Par défaut
    C'est un avertissement de type "portabilité 64 bits" qui semble venir d'une erreur dans le typedef du type uintptr_t : Celui-ci devrait, au même titre que size_t et INT_PTR, être déclaré avec le qualificatif _W64 (ou __w64).

    D'ailleurs, dans mon SDK (Visual studio 2005 SP1), il l'est...
    (fichier d'en-tête vadefs.h)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    #ifndef _UINTPTR_T_DEFINED
    #ifdef  _WIN64
    typedef unsigned __int64    uintptr_t;
    #else
    typedef _W64 unsigned int   uintptr_t;
    #endif
    #define _UINTPTR_T_DEFINED
    #endif
    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.

  10. #10
    Membre confirmé
    Avatar de Mindiell
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    735
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 735
    Points : 546
    Points
    546
    Par défaut
    Ouh là... Merci pour l'info. Je vais retourner sur VC6 et plus embeter personne
    Mindiell
    "Souvent, femme barrit" - Elephant man

  11. #11
    Membre habitué

    Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2004
    Messages
    46
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juillet 2004
    Messages : 46
    Points : 183
    Points
    183
    Par défaut
    J'avais ce problème également (le 1er) : la solution pour moi a été :
    Propriété du projet -> Editeur de lien -> Entrée -> Bibliothèque spécifique ignorée et là j'ai mis MSVCRTD (ça revient à faire ce que dit le message d'erreur c'est à dire ajouter : /NODEFAULTLIB:MSVCRTD dans la ligne de commande.

Discussions similaires

  1. Problème datagrid sous visual studio.net 2003
    Par tom34 dans le forum ASP.NET
    Réponses: 3
    Dernier message: 07/06/2007, 14h12
  2. Réponses: 3
    Dernier message: 03/10/2005, 10h01
  3. Service NT (Visual studio .Net 2003)
    Par hip_zip dans le forum MFC
    Réponses: 1
    Dernier message: 27/07/2005, 13h06
  4. probleme de link avec visual studio .net 2003
    Par kamal101 dans le forum MFC
    Réponses: 9
    Dernier message: 28/03/2005, 21h44
  5. [C#] Probleme de visual studio.net 2003
    Par gandalfar dans le forum Windows Forms
    Réponses: 6
    Dernier message: 07/01/2005, 14h53

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