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

VC++ .NET Discussion :

probleme inclusion librairie


Sujet :

VC++ .NET

  1. #1
    Membre habitué Avatar de sylvain.cool
    Profil pro
    Étudiant
    Inscrit en
    Janvier 2006
    Messages
    242
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2006
    Messages : 242
    Points : 158
    Points
    158
    Par défaut probleme inclusion librairie
    Bonjour a tous,
    J'ai telecharger la librairie mathematique Meschach.
    Dans le .zip se trouvent les fchiers .c et .h.
    J'ai creer un nouveau projet vc++, static librairy.
    Je compile. Il me cree dans le dossier debug des .obj et un .lib.
    J'ai inclus le .lib dans mon autre projet et dans les options de vc++, j'ai inclus les fichiers .h dans include files, .c dans source files, .obj dans executable files et le .lib dans librairy files.
    Dans le Main.cpp de mon nouveau projet, j'inclus "Matrix.h". Quand je le compile, il trouve bien le fichier include, mais il plante dans l'edition de liens: unresolved external symbol.
    Si quelqu'un pouvait m'aider, je lui en serrait tres reconnaissant.

  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
    Points : 16 075
    Points
    16 075
    Par défaut
    tu as lié la lib au projet ? dans les options ou par un pragma http://www.developpez.net/forums/sho...8&postcount=64

  3. #3
    Membre habitué Avatar de sylvain.cool
    Profil pro
    Étudiant
    Inscrit en
    Janvier 2006
    Messages
    242
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2006
    Messages : 242
    Points : 158
    Points
    158
    Par défaut
    Oui, je l'ai bien ajouté en passant par les proprietes du projet.

  4. #4
    Membre habitué Avatar de sylvain.cool
    Profil pro
    Étudiant
    Inscrit en
    Janvier 2006
    Messages
    242
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2006
    Messages : 242
    Points : 158
    Points
    158
    Par défaut
    J'ai essayer de lier avec le pragma.
    Cela me donne la meme erreur.
    Je me demande si la librairie est bien compilée.
    Seulement c'est la premiere fois que je compile une librairie avec visual c++.
    Si quelqu'un avait des details sur comment creer une librairie statique avec des .c et .h ...

  5. #5
    Membre habitué Avatar de sylvain.cool
    Profil pro
    Étudiant
    Inscrit en
    Janvier 2006
    Messages
    242
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2006
    Messages : 242
    Points : 158
    Points
    158
    Par défaut Help Help Help
    J'en peux plus.
    Il me semble avoir tout essayer...

    J'ai compiler la librairie statique (j'ai un fichier librairy.lib).
    Je l'ai liee au projet (properties>linker>input>librairy.lib).

    Je compile, il trouve la librairie (.lib), il trouve les definitions des fonctions (.h), mais il ne trouve pas les fonctions (LNK2019: unresolved external symbol "struct facetT * __cdecl qh_findbestfacet(double *,unsigned int,double *,unsigned int *)" referenced in function _main).

    La, je ne comprend plus rien... ca avait l'air si simple.....
    Personne n'a jamais eu de pb avec l'utilisation d'une librairie statique?? Dois-je utiliser les .obj creer par visual quand je compile la librairie? Faut-il utiliser des options speciales?

    svp aidez moi

  6. #6
    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
    Points : 16 075
    Points
    16 075
    Par défaut
    tu inclues bien les .h et tout ce qu'il faut ?

    je montre rapidement comment créer une lib dans ce tutoriel http://nico-pyright.developpez.com/t...c2005/interop/

  7. #7
    Membre habitué Avatar de sylvain.cool
    Profil pro
    Étudiant
    Inscrit en
    Janvier 2006
    Messages
    242
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2006
    Messages : 242
    Points : 158
    Points
    158
    Par défaut
    Les .h sont bien inclus puisqu'il connait les fonctions. Il ne fait pas d'erreur sur la compilation des .obj, mais sur l'edition de liens.
    En regardant le .lib de plus pres (lecture en ascii), je me suis apercu que les fonctions etaient la, mais qu'elles n'avaient pas exactement la meme forme:
    Le nom est le meme, mais la suite de l'appel est different!!!!! Pourtant, la forme est bonne, puisqu'il va jusqu'a l'edition de liens.
    Pour ton tutoriel, j'ai regarder, mais dans mon cas, je n'ai pas de dll. D'Apres ce que j'ai lu, il faut le compiler en statique. Mais peut etre que ca marcherait mieux en compilant en dll. Je vais essayer.
    Merci de ta reponse et je te tiens au courant.

  8. #8
    Membre habitué Avatar de sylvain.cool
    Profil pro
    Étudiant
    Inscrit en
    Janvier 2006
    Messages
    242
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2006
    Messages : 242
    Points : 158
    Points
    158
    Par défaut
    Impossible de compiler en dll. J'ai verifier toutes les options des projets, ce sont les memes pour la compilation de la librairie et du test.
    Alors la c'est incroyable. Il doit y avoir quelquechose que je n'ai pas compris.
    J'ai essayer au moins 5 librairies differentes en suivant scrupuleusement le tutorial du site de microsoft. Ca ne marche toujours pas.

  9. #9
    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
    Points : 16 075
    Points
    16 075
    Par défaut
    tu exportes des fonctions ? tu utilises extern "c" ? tu as un fichier .def ?

  10. #10
    Membre habitué Avatar de sylvain.cool
    Profil pro
    Étudiant
    Inscrit en
    Janvier 2006
    Messages
    242
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2006
    Messages : 242
    Points : 158
    Points
    158
    Par défaut
    Non je n'exporte pas de fonctions.
    Non je n'utilise pas extern "c".
    oui, j'ai 2 fichiers .def, mais seulement 2 alors que j'ai une dizaine de .lib.
    J'ai essayer de les lier au projet, mais visual donne une erreur quand je les utilisent.

  11. #11
    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
    Points : 16 075
    Points
    16 075
    Par défaut
    tu devrais utiliser extern C, car ca évitera la décoration des fonctions

  12. #12
    Membre habitué Avatar de sylvain.cool
    Profil pro
    Étudiant
    Inscrit en
    Janvier 2006
    Messages
    242
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2006
    Messages : 242
    Points : 158
    Points
    158
    Par défaut
    Ca y est, le probleme est resolu.
    En fait, quand je compilait la librairie sous visual, je n'avais pas exactement les memes options que dans mon projet de test de la librairie.
    Une fois les bonnes options mises, le link se passe bien.
    Il me semblait avoir deja verifie ce point, mais apparement je ne l'Avais pas assez approfondis.
    Merci pour tes reponses, meme si elle ne m'ont pas vraiment aidees.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. OpenGL + DevC++ : Probleme de librairie
    Par gids01 dans le forum OpenGL
    Réponses: 3
    Dernier message: 04/11/2005, 13h05
  2. Probleme inclusion
    Par bourbaki2003 dans le forum C++
    Réponses: 7
    Dernier message: 28/10/2005, 09h25
  3. probleme de librairie avec Dev-C++
    Par Miksimus dans le forum Dev-C++
    Réponses: 2
    Dernier message: 12/10/2005, 12h21
  4. <GLADE + C++> Probleme de Librairies
    Par debutanteVB.NET dans le forum Bibliothèques
    Réponses: 3
    Dernier message: 30/09/2005, 12h40
  5. [Link] Probleme de librairies...
    Par k'n1 dans le forum C++
    Réponses: 3
    Dernier message: 22/02/2005, 05h40

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