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

Eclipse C & C++ Discussion :

Linker .lib dans un projet eclipse C++


Sujet :

Eclipse C & C++

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Août 2008
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 5
    Points : 3
    Points
    3
    Par défaut Linker .lib dans un projet eclipse C++
    Bonjour, j'ai un programme à écrire en C++ en utilisant un SDK fourni par une société externe. Le SDK comprend les .h, les .lib et les .dll.
    Lorsque je crée un projet sur Eclipse, je fais bien un include des .h qu'il faut et je met bien les .lib pour le linkage.
    Mais j'obtiens toujours une erreur du type "undefined to _imp___Z9InitBMDllPc@4". La fonction qui été appelée s'appelle InitBMDll().
    Je suis sur ce problème depuis des semaines. J'ai essayé avec netbeans et Dev-Cpp mais rien n'y fait.
    Une chose peut etre importante aussi, je pense que les .lib et .dll ont été générés en utilisant Visual Studio. Et un amis m'a dit qu'il été peut etre possible que le fait que se soit visual studio (c'est a dire Microsoft) qui ai compilé ces libs, ca ne marche que pour visual studio et pas pour Eclipse ou etc...
    Je vous demande donc humblement vos avis et conseils.

    Si vous avez besoin des lignes de compilation:

    g++ -IC:\Documents and Settings\espacePerso\workspace\Essai\inc -O0 -g3 -w -Wall -c -fmessage-length=0 -osrc\Essai.o ..\src\Essai.cpp
    g++ -LC:\Documents and Settings\espacePerso\workspace\Essai\lib -oEssai.exe src\Essai.o -lBM_Dll -lBM_Settings_Dll

    src\Essai.o(.text+0x156): In function `main':
    C:/Documents and Settings/espacePerso/workspace/Essai/Debug/../src/Essai.cpp:47: undefined reference to `_imp___Z9InitBMDllPc@4'

  2. #2
    Membre éclairé
    Avatar de mamelouk
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    867
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Mai 2005
    Messages : 867
    Points : 810
    Points
    810
    Par défaut
    une remarque au passage et un peu en retard : comme te l'as dis ton ami, je ne crois pas que tu puisse utiliser des DLL compilés avec visual studio dans un programme compilé avec gcc et vice versa. c'est surement ton problème.

    essaie donc de compiler ton projet avec visual studio express, ou si tu veut absolument utiliser eclipse, tu peut générer ton projet à l'aide de cmake pour utiliser le compilateur microsoft

    Débugger du code est deux fois plus dur que d'en écrire.
    Donc, si vous écrivez votre code aussi intelligemment que vous le pouvez, vous n'etes, par définition, pas assez intelligent pour le débugger.

  3. #3
    Candidat au Club
    Profil pro
    Inscrit en
    Août 2008
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 5
    Points : 3
    Points
    3
    Par défaut
    Merci de ta réponse Mamelouk. En effet quelques temps après ce message j'ai recu une réponse du fournisseur me disant que c'était impossible d'utiliser eclipse.
    Maintenant si tu me dit de compiler le projet avec visual studio, je veux bien mais il faut savoir que je n'ai pas les sources du projet. C'est un SDK fourni par la société, à qui on a acheté le matériel, que j'ai récupéré.
    Alors aurait tu une solution à mon problème? Peux t-on transformer la lib visual en lib compatible avec eclipse? Ou alors Peux t-on utiliser quelque chose pour faire le lien entre une lib visual et une lib eclipse?
    Merci de ta réponse

  4. #4
    Membre éclairé
    Avatar de mamelouk
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    867
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Mai 2005
    Messages : 867
    Points : 810
    Points
    810
    Par défaut
    de rien, par contre je n'ai pas très bien compris ta réponse:

    si utilise un SDK compilé le compilateur microsoft (visual studio), il faudra compiler ton projet avec le compilateur microsoft, pas le choix. donc, il faudra:

    - soit que tu code ton projet dans visual studio
    - soit tu tiens absolument à utiliser eclipse et tu peut configure eclipse pour utiliser le compilateur microsoft. c'est facilement faisable avec cmake, voir ce post

    Débugger du code est deux fois plus dur que d'en écrire.
    Donc, si vous écrivez votre code aussi intelligemment que vous le pouvez, vous n'etes, par définition, pas assez intelligent pour le débugger.

  5. #5
    Candidat au Club
    Profil pro
    Inscrit en
    Août 2008
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 5
    Points : 3
    Points
    3
    Par défaut
    Ok merci c'est exactement ce que je voulais (utiliser eclipse avec une lib microsoft), j'espère que ca va marcher. Je verrais lundi si j'arrive a comprendre le tuto que tu m'as donné.
    Je te tiendrais informé. Bon week end en attendant.

Discussions similaires

  1. Réponses: 1
    Dernier message: 24/02/2009, 15h07
  2. inclusion de lib dans les projets
    Par stachus dans le forum Eclipse Platform
    Réponses: 3
    Dernier message: 22/11/2007, 11h56
  3. Réponses: 2
    Dernier message: 03/07/2006, 20h14
  4. Réponses: 11
    Dernier message: 13/03/2006, 17h51
  5. [Info] ajout de fichier dans des projets eclipse
    Par root76 dans le forum Eclipse Java
    Réponses: 1
    Dernier message: 16/12/2005, 12h48

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