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 :

Aide de configuration


Sujet :

Visual C++

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    759
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 759
    Points : 159
    Points
    159
    Par défaut Aide de configuration
    Bonjour,

    Je viens de reprendre un vieux projet sur lequel plus personne qui a travaillé dessus n'est là pour pouvoir m'aider.

    Il s'agit d'un projet DLL qui utilise IlogViews

    Dans un premier temps, j'ai récupéré tous les includes disséminés un peu partout que j'ai regroupé dans un dossier, pareil pour les .lib.
    J'ai ajouté ces dossiers dans les "Directories" respectivement d'include et de lib.

    Au niveau des settings du projet, je n'ose pas y toucher puisque si elles ont été mis en gestion de conf avec ces paramètres, c'est que ça devait marcher comme ça à l'époque.

    Voilà pour commencer mes erreurs de link : il semble dans ces milliers d'erreurs que ce ne soient QUE des erreurs IlogViews
    xxxxx.obj : error LNK2001: unresolved external symbol "__declspec(dllimport) public: __thiscall CIlv31wlfgad::CIlv31wlfgad(void)" (__imp_??0CIlv31wlfgad@@QAE@XZ)
    Concernant cette librairie, les include et les lib/dll font partie de ce que j'ai dans mes "Directories" (version pour VC6, la version de mon compilateur)


    Qu'est-ce que je peux faire avec ça?

    Merci.

  2. #2
    Rédacteur
    Avatar de Neitsa
    Homme Profil pro
    Chercheur sécurité informatique
    Inscrit en
    Octobre 2003
    Messages
    1 041
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Chercheur sécurité informatique

    Informations forums :
    Inscription : Octobre 2003
    Messages : 1 041
    Points : 1 956
    Points
    1 956
    Par défaut
    Bonjour,

    error LNK2001: unresolved external symbol
    Il y a fort à parier que l'éditeur de lien (linker) ne trouve pas la (ou les) *.lib correspondante(s).

    Dans un premier temps, passe le switch /VERBOSE au linker et vérifie que le chemin exact (et pas seulement le répertoire du dessus ou du dessous) où se trouve les libs apparaît bien dans le listing d'output du linker. Si le chemin (où le nom des libs) n'apparaît pas, c'est que le linker ne "voit" pas la lib requise.

    Tu peux aussi essayer avec /VERBOSE:LIB (où LIB est le nom de la bibliothèque) mais je ne sais pas si cette option est prise en compte par le linker de VC6.

    cf. /VERBOSE sur la MSDN

  3. #3
    Membre habitué
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    759
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 759
    Points : 159
    Points
    159
    Par défaut
    Bonjour,

    Merci de ta réponse.

    Déjà toutes mes libs sont "en vrac" dans un unique dossier donc ça simplifie les chemins, un seul dossier suffit pour tout trouver.

    J'ai essayé plein de choses et maintenant voilà les erreurs :
    cas où Je ne coche pas "Ignore all default librairies" et où seule libc est ignorée (le projet était comme ça quand je l'ai pris)
    Linking...
    LIBCD.lib(crt0dat.obj) : error LNK2005: __cinit already defined in LIBCMT.lib(crt0dat.obj)

    cas où Je ne coche pas "Ignore all default librairies" et où aucune autre librairie ignorée
    Linking...
    LIBC.lib(crt0dat.obj) : error LNK2005: __cinit already defined in LIBCMT.lib(crt0dat.obj)

    cas où Je coche "Ignore all default librairies" et où libc est ignorée
    Linking...
    ilvgadgt.lib(gadcont.obj) : error LNK2001: unresolved external symbol _strstr


    Pour l'option VERBOSE, ça raconte effectiveent plus de choses dans la comàpilation, mais rien de plus au moment des erreurs.

  4. #4
    Rédacteur
    Avatar de Neitsa
    Homme Profil pro
    Chercheur sécurité informatique
    Inscrit en
    Octobre 2003
    Messages
    1 041
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Chercheur sécurité informatique

    Informations forums :
    Inscription : Octobre 2003
    Messages : 1 041
    Points : 1 956
    Points
    1 956
    Par défaut
    Hello,

    Citation Envoyé par stof Voir le message
    cas où Je ne coche pas "Ignore all default librairies" et où aucune autre librairie ignorée
    Linking...
    LIBC.lib(crt0dat.obj) : error LNK2005: __cinit already defined in LIBCMT.lib(crt0dat.obj)
    Apparament, ce serait la bonne option (ne coche pas "Ignore all default librairies" et où aucune autre librairie ignorée) mais il reste un problème de conflit entre LIBC et LIBCMT.

    Ce problème est (sûrement) dû au fait qu'une partie du projet est linké avec la lib en single thread (switch /ML) et l'autre en multi-thread (switch /MT). Ca doit sûrement venir de la lib qui est linkée avec une option et ton programme avec une autre.

    Si tu ne peut pas recompiler la lib, change de switch pour ton projet (veille bien à ce que tout soit linké avec le même switch). Il faudra le faire aussi bien pour le debug que pour le mode release (/MLd et /MTd en mode debug).

    Mais surtout, n'exclue aucune lib.

    Serait-il possible d'avoir la ligne de commande du compilo et du linker en entier ? (si tu n'arrive pas à t'en sortir avec les switchs).

  5. #5
    Membre habitué
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    759
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 759
    Points : 159
    Points
    159
    Par défaut
    Alors j'avoue que les switch single thread / multithread j'ai rien compris à ce qui est compilé différmment :

    Dans les tests ci-dessous, j'ai retiré libc dans les librairies ignorées alors que dans les options tout en bas, j'ai mis les options exactes du projet que j'ai récupéré (donc avec cette librairie ignorée).

    Code Generation à Debug Multithreaded ou Debug Singlethreaded
    Linking...
    libcpmtd.lib(ios.obj) : error LNK2005: "public: void __thiscall std::ios_base::clear(int,bool)" (?clear@ios_base@std@@QAEXH_N@Z) already defined in msvcprtd.lib(MSVCP60D.dll)

    Code Generation à Debug Multithreaded DLL
    Linking...
    LIBC.lib(crt0dat.obj) : error LNK2005: _exit already defined in MSVCRTD.lib(MSVCRTD.dll)



    Rappel : le projet sert à fabriquer une DLL.
    Onglet C/C++ : project Options :
    /nologo /G3 /MT /W3 /GR /GX /Ox /Ot /D "NDEBUG" /D "WIN32" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "ILVSTD" /D "ILVDLL" /D "_WINDLL" /FR"compile/" /Fp"compile/ma_dll.pch" /YX /Fo"compile/" /Fd"compile/" /FD /c

    Onglet Link : project Options :
    ilvedit.lib ilvgadgt.lib views.lib winviews.lib wsock32.lib imm32.lib ilvvar.lib ingres.lib gpgag_chaine.lib gpgag_modele.lib gpgag_commun.lib gpgag_contexte.lib gpgag_date.lib gpgag_ligne.lib gpgag_sheet.lib gpgmc350.lib gpgag250.lib gpgmc001.lib interactor.lib valeurs.lib gpgag_pderives.lib /nologo /dll /incremental:no /pdb:"compile/ma_dll.pdb" /machine:I386 /nodefaultlib:"libc" /out:"compile/ma_dll.dll" /implib:"compile/ma_dll.lib"

  6. #6
    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
    Points : 17 323
    Points
    17 323
    Par défaut
    salut,
    je n'ai pas tout lu ,mais des fois il suffit de repousser au link certaines bibliothèques pour que l'édition des liens fonctionne et éviter les ré définitions.
    voir faq:http://cpp.developpez.com/faq/vc/?page=IDE#LinkCRT

Discussions similaires

  1. Aide newbie configuration code::blocks avec allegro
    Par max---- dans le forum Code::Blocks
    Réponses: 8
    Dernier message: 24/10/2007, 10h39
  2. [Débutant]Aide pour Configuration ASP.NET
    Par Vlatiska dans le forum ASP.NET
    Réponses: 6
    Dernier message: 15/03/2007, 13h34
  3. [Kerio] Aide à la configuration
    Par Arnaud F. dans le forum Sécurité
    Réponses: 5
    Dernier message: 04/10/2006, 17h36
  4. Aide pour configurer un serveur samba
    Par rigel dans le forum Administration système
    Réponses: 2
    Dernier message: 01/10/2006, 03h29
  5. [Serveur] Besoin d'aide pour configuration
    Par rigel dans le forum Ordinateurs
    Réponses: 8
    Dernier message: 19/09/2006, 10h29

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