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 :

utiliser librairie statique code blocks


Sujet :

C

  1. #1
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2017
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2017
    Messages : 14
    Points : 11
    Points
    11
    Par défaut utiliser librairie statique code blocks
    Bonjour,

    Je cherche a utiliser une librairie static que j'ai build grace à Cmake. J'ai une fichier .a que j'ai link à mon projet (project -> build option -> linker settings -> add ...), mais les fonctions de ma librairie ne sont pas reconnus. Est ce que d'autre étapes sont nécessaire pour rajouter la librairie à mon projet?
    Je précise que je n'ai pas de .h associer à cette librairie.

    Merci d'avance

  2. #2
    Expert confirmé
    Inscrit en
    Mars 2005
    Messages
    1 431
    Détails du profil
    Informations forums :
    Inscription : Mars 2005
    Messages : 1 431
    Points : 4 182
    Points
    4 182
    Par défaut
    Tu dois forcément spécifier les prototypes des fonctions que tu utilises, comment le compilateur pourrait-il s'y retrouver ?

    Es-tu sûr que le processus de build n'a pas créé un dossier spécifique aux en-têtes de l'interface ? Si ce n'est pas le cas il te faudra les rapatrier directement depuis les sources de la bibliothèque.

  3. #3
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2017
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2017
    Messages : 14
    Points : 11
    Points
    11
    Par défaut
    Je viens de revérifier et je n'ai pas d'autre fichiers d'en tête que les fichiers présent de base dans la librairie avant que je la build (les .c et .h). Qu'est ce que tu veux dire par "rapatrier" depuis les sources? Tu veux mettres tout ces .h (il y a une vingtaine de .h) en include dans les fichiers de mon projet?

  4. #4
    Expert confirmé
    Inscrit en
    Mars 2005
    Messages
    1 431
    Détails du profil
    Informations forums :
    Inscription : Mars 2005
    Messages : 1 431
    Points : 4 182
    Points
    4 182
    Par défaut
    Si l'API de la bibliothèque est conçue correctement tu devrais avoir soit :

    • un master header qui déclare, directement ou indirectement (en incluant d'autres en-têtes), toute l'interface publique ;
    • un ou plusieurs en-têtes spécialement générés en plus du .a par le script de build / installation dans un répertoire spécifique.


    Si ce n'est pas le cas, rapatrie tous les en-têtes des sources dans un répertoire quelque part dans l'arborescence de ton projet, inclus-les tous puis commente les directives d'inclusion une par une pour déterminer le minimum nécessaire. Enfin, tu ne devrais pas avoir à en arriver là ; que dit la documentation de cette bibliothèque ?

  5. #5
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2017
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2017
    Messages : 14
    Points : 11
    Points
    11
    Par défaut
    Pour information la librairie que j'utilise : https://github.com/json-c/json-c
    Tu penses alors que j'ai mal build la librairie?

    Bon dans le pire des cas je vais rajouter a la main tout les .h et vérifier manuellement les include minimun que j'ai besoin
    La documentation est principalement pour les utilisateurs sous linux, pour build cette librairie je me suis aidé par des tutos externes que j'ai adapté a mon problème, j'ai donc pas utiliser la doc sauf la partie ou ils demandent de rajouter des lignes dans le makefiles.

  6. #6
    Expert confirmé
    Inscrit en
    Mars 2005
    Messages
    1 431
    Détails du profil
    Informations forums :
    Inscription : Mars 2005
    Messages : 1 431
    Points : 4 182
    Points
    4 182
    Par défaut
    Les instructions sur comment lier la bibliothèque sont en bas de page. Elles mentionnent bien un répertoire spécifique pour les en-têtes (include/json-c).

    As-tu fait make install ?

  7. #7
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2017
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2017
    Messages : 14
    Points : 11
    Points
    11
    Par défaut
    Problème réglé j'avais oublié de faire le make install, merci beaucoup !

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

Discussions similaires

  1. Réponses: 5
    Dernier message: 23/03/2013, 08h15
  2. problème avec la librairie standard, code::block + mingw64
    Par Benoit_T dans le forum Code::Blocks
    Réponses: 0
    Dernier message: 22/07/2009, 14h01
  3. Problème de librairie avec code blocks sous Linux
    Par philmor34 dans le forum Code::Blocks
    Réponses: 1
    Dernier message: 31/10/2008, 13h25
  4. Utiliser Qt avec code::blocks sous Kubuntu
    Par H-bil dans le forum Qt
    Réponses: 6
    Dernier message: 18/01/2008, 00h13
  5. Impossible d'utiliser lua sous code::blocks
    Par Mindiell dans le forum Développement 2D, 3D et Jeux
    Réponses: 5
    Dernier message: 07/09/2007, 09h01

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