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

 C Discussion :

[eclipse cdt] utilisation de lib


Sujet :

C

  1. #1
    Membre à l'essai
    Profil pro
    étudiant ingénieur
    Inscrit en
    Juin 2010
    Messages
    37
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : étudiant ingénieur

    Informations forums :
    Inscription : Juin 2010
    Messages : 37
    Points : 12
    Points
    12
    Par défaut [eclipse cdt] utilisation de lib
    Bonjours,
    Malgré de nombre recherche sur le net, je n'arrive pas à utiliser une bibliothèque (zlib) sous eclipse.
    Voila où j'en suis:
    j'ai installer la lib comme indiqué dans le readme:

    Using ZLIB1.DLL with gcc/MinGW
    ==============================
    1. Install the supplied header files "zlib.h" and "zconf.h"
    into the INCLUDE directory.

    2. Copy the supplied library file "zdll.lib" to "libzdll.a":
    cp lib/zdll.lib lib/libzdll.a

    OR

    2' Build the import library from the supplied "zlib.def":
    dlltool -D zlib1.dll -d lib/zlib.def -l lib/libzdll.a

    3. Install "libzdll.a" into the LIB directory.

    4. Add "libzdll.a" to your project, or use the -lzdll option.
    Je comprend le 3. Install "libzdll.a" into the LIB directory. comme placer le fichier "libzdll.a" dans le dossier lib de mingw

    Une fois cela fait dans eclipse propriétés du projet -> C/C++ General-> Path and Symbols -> dans l'onglet Libraries j'ajoute C:\MinGW\lib\libzdll.a

    Comment une fois arrivé là, faire appelle aux fonctions de la lib. J'ai essayé #include <zlib.h> et #include "zlib.h" (je ne maîtrise pas encore la différence entre les deux ) le compilateur m'informe qu'il ne connait pas ces fichiers

  2. #2
    Membre régulier Avatar de quentinh
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2011
    Messages
    79
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Ardennes (Champagne Ardenne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2011
    Messages : 79
    Points : 114
    Points
    114
    Par défaut
    permet de chercher le fichier en priorité dans le répertoire Include du compilateur.
    permet de chercher le fichier en priorité dans tes sources.

    Tu utilises les chevrons pour les en-têtes de bibliothèques, et les guillemets pour les en-têtes que tu écris pour ton code.

    As-tu fais le 1. du README, c'est-à-dire copier zlib.h et zconf.h dans le dossier include ?
    Mon projet : Devilsai

  3. #3
    Membre à l'essai
    Profil pro
    étudiant ingénieur
    Inscrit en
    Juin 2010
    Messages
    37
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : étudiant ingénieur

    Informations forums :
    Inscription : Juin 2010
    Messages : 37
    Points : 12
    Points
    12
    Par défaut
    Oui, ils sont bien dans le rep include de mingw.

    J'ai également vérifier que le rep d'include de mingw soit ajouté à :
    propriétés du projet -> C/C++ General-> Path and Symbols -> Onglet Includes

    Vus qu'il ne semble pas trouvé zlib.h et zconf.h je les ai ajouté au projet. J'ai donc utilisé #include "zlib.h" et il me trouve le fichier. Par contre j'ai une pléthore de "undefined reference to *fonction_de_la_lib*"
    Faut il en conclure que le compilateur ne trouve ni les .h ni la lib Aurais-je raté une étape ?

    Edit: je viens de me rappelé que mon projet utilise un makefile, il faut peut être que je le modifie pour utiliser la lib ?

    Edit : un ajout de -lzdll à LIBS += -lc -lcs3 -lcs3unhosted me retourne un "cannot find -lzdll"

    Edit : j'avais oublie de faire sa :
    Installing ZLIB1.DLL
    ====================
    Copy ZLIB1.DLL to the SYSTEM or the SYSTEM32 directory.
    Mais sa ne change rien

  4. #4
    Membre régulier Avatar de quentinh
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2011
    Messages
    79
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Ardennes (Champagne Ardenne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2011
    Messages : 79
    Points : 114
    Points
    114
    Par défaut
    Effectivement, il y a un problème de répertoire. Je n'utilise pas Eclipse, mais je pense que tes fichiers d'en-tête et de bibliothèque devraient être copiés dans les dossier lib et include de Eclipse, et non de MinGW. Peut-être un moyen simple de vérifier : les répertoire où tu copies les fichiers devraient déjà être plein d'en-têtes et de bibliothèques diverses.
    Mon projet : Devilsai

  5. #5
    Membre à l'essai
    Profil pro
    étudiant ingénieur
    Inscrit en
    Juin 2010
    Messages
    37
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : étudiant ingénieur

    Informations forums :
    Inscription : Juin 2010
    Messages : 37
    Points : 12
    Points
    12
    Par défaut
    Citation Envoyé par quentinh Voir le message
    les répertoire où tu copies les fichiers ...
    Tu fait référence à quels répertoires ? A par ceux de MinGw je vois pas.

  6. #6
    Membre régulier Avatar de quentinh
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2011
    Messages
    79
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Ardennes (Champagne Ardenne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2011
    Messages : 79
    Points : 114
    Points
    114
    Par défaut
    Personnellement sous Windows, j'utilise Code::Blocks et dans le répertoire Program Files/CodeBlocks, j'ai les répertoires include et lib où je copie les fichiers des bibliothèques que j'utilise. Je ne les copie pas dans les répertoire include et lib de MinGW.

    Tu peux peut-être faire une recherche sur des fichiers de base pour trouver les répertoires, par ex. "io.h" et "libd3d9.a"
    Mon projet : Devilsai

  7. #7
    Membre à l'essai
    Profil pro
    étudiant ingénieur
    Inscrit en
    Juin 2010
    Messages
    37
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : étudiant ingénieur

    Informations forums :
    Inscription : Juin 2010
    Messages : 37
    Points : 12
    Points
    12
    Par défaut
    io.h est dans C:\MinGW\include
    et libd3d9.a dans C:\MinGW\lib

    Y a rien des le répertoire de eclipse. Une idée ?

  8. #8
    Membre régulier Avatar de quentinh
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2011
    Messages
    79
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Ardennes (Champagne Ardenne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2011
    Messages : 79
    Points : 114
    Points
    114
    Par défaut
    Crée dans le répertoire de ton projet un dossier lib et copie-y les fichiers, puis directement dansle makefile : avant les bibliothèque. Cela rajoutera le nouveau répertoire dans la liste des répertoire à explorer.
    Mon projet : Devilsai

  9. #9
    Membre à l'essai
    Profil pro
    étudiant ingénieur
    Inscrit en
    Juin 2010
    Messages
    37
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : étudiant ingénieur

    Informations forums :
    Inscription : Juin 2010
    Messages : 37
    Points : 12
    Points
    12
    Par défaut
    J'ai crée le dossier, y ai placé les deux .h le .a.
    Dans le makefile où dois-je ajouter la ligne ?

    dans LDFLAGS ou LIBS ou ailleurs ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    LDFLAGS += -Xlinker -Map=$(LST_DIR)/$(PROJECTNAME).map -mcpu=cortex-m3 -mthumb \
    -T../../../../../CMSIS/CM3/DeviceSupport/EnergyMicro/EFM32/startup/cs3/efm32g.ld -L"$(TOOLDIR)/arm-none-eabi/lib/thumb2" \
    -L"$(TOOLDIR)/lib/gcc/arm-none-eabi/$(GCCVERSION)/thumb2" \
    -Wl,--gc-sections
     
    LIBS += -lc -lcs3 -lcs3unhosted

  10. #10
    Membre régulier Avatar de quentinh
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2011
    Messages
    79
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Ardennes (Champagne Ardenne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2011
    Messages : 79
    Points : 114
    Points
    114
    Par défaut
    Au tout début de LDFLAGS, ce doit être le mieux.
    Mon projet : Devilsai

  11. #11
    Membre à l'essai
    Profil pro
    étudiant ingénieur
    Inscrit en
    Juin 2010
    Messages
    37
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : étudiant ingénieur

    Informations forums :
    Inscription : Juin 2010
    Messages : 37
    Points : 12
    Points
    12
    Par défaut
    Il ne trouve pas les fichiers qui sont dans la lib

  12. #12
    Membre à l'essai
    Profil pro
    étudiant ingénieur
    Inscrit en
    Juin 2010
    Messages
    37
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : étudiant ingénieur

    Informations forums :
    Inscription : Juin 2010
    Messages : 37
    Points : 12
    Points
    12
    Par défaut
    j'ai réglé mon probleme en utilisant les sources de la lib. J'ai dut ajouter le rep où se trouve les fichiers dans la liste d'INCLUDEPATHS du make file et j'ai ajouté le chemin vers chaqu'un des .c au makefile dans la liste de C_SRC.

    Maintenant j'ai de jolies erreurs :
    • exe/fat_on_sd_card.out section `.text' will not fit in region `rom'
    • region `rom' overflowed by 25328 bytes

Discussions similaires

  1. [opencv][2.4.5][Eclipse CDT] configuration lib
    Par compagnon dans le forum OpenCV
    Réponses: 1
    Dernier message: 18/06/2013, 17h20
  2. utilisation de la classe org.eclipse.cdt.build.MakeTargetBuilder
    Par tensei dans le forum Eclipse Platform
    Réponses: 0
    Dernier message: 09/12/2008, 17h01
  3. [fedora 9,eclipse CDT,Qt] utiliser GMP (calculs numériques)
    Par olivier57b dans le forum Bibliothèques
    Réponses: 4
    Dernier message: 23/09/2008, 14h53
  4. Eclipse CDT Completion: Utilisation 100% CPU
    Par XeN-Lo dans le forum Eclipse C & C++
    Réponses: 6
    Dernier message: 04/03/2008, 17h00
  5. [Eclipse CDT] creer une lib et un executable dans le meme projet ?
    Par mamelouk dans le forum Eclipse C & C++
    Réponses: 4
    Dernier message: 28/11/2006, 15h05

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