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

Code::Blocks Discussion :

création d'une bibliothèque statique


Sujet :

Code::Blocks

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    82
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2006
    Messages : 82
    Points : 50
    Points
    50
    Par défaut création d'une bibliothèque statique
    Bonjour à tous, je debute en C , j'ai crée un fichier .c contenant quelques fonctions que j'utilise souvent ainsi qu'un header contenant les prototypes .
    Pour l'instant a chaque fois que je cree un nouveau projet je rajoute directement ces deux fichiers et les lies au projet .

    Mais il me semble qu il y a une autre manière plus simple de faire, en créant un dossier "include" et un"lib" qui contiendrait respectivement tous mes headers et fonctions . Je n'aurais par la suite qu a déclarer dans mon fichier principal <fonctions.h> par exemple pour inclure les fonctions à la compilation si j'ai bien compris .

    J'utilise codeblocks et dans setting/compiler and debugger il est possible dans search directories d'ajouter ces dossiers dans compiler (pour les .h) et linker(pour les .a ou .lib) il me semble .

    mais je ne parviens pas à creer de .lib ou .a j'ai bien essayé de faire nouveau projet "static library" en y mettant mes deux fichiers h et c , mais a la compilation je n'obtiens rien .

    Quel est la procedure exacte pour y parvenir ?
    merci d'avance pour votre aide !

  2. #2
    Expert éminent
    Avatar de Melem
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Janvier 2006
    Messages
    3 656
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Janvier 2006
    Messages : 3 656
    Points : 8 389
    Points
    8 389
    Par défaut
    j'ai bien essayé de faire nouveau projet "static library" en y mettant mes deux fichiers h et c , mais a la compilation je n'obtiens rien .
    Ca ce n'est pas normal. Peux-tu uploader ton projet ?

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    82
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2006
    Messages : 82
    Points : 50
    Points
    50
    Par défaut
    en fait j avais bêtement oublié de lier les fichiers .c et .h au projet ...
    donc j ai finalement obtenu le .a
    Mais ce qui m' étonne avec cette méthode c'est que je ne dois même plus inclure les .h .
    Du coup à la compilation ça doit inclure toutes les fonctions , ce qui peut alourdir mon exe inutilement .
    Ce que j'aurai voulu c'est inclure uniquement les headers des fonctions dont j'ai besoin .
    A vrai dire je ne comprend pas trop ce que fait code blocks .

  4. #4
    Expert éminent
    Avatar de Melem
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Janvier 2006
    Messages
    3 656
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Janvier 2006
    Messages : 3 656
    Points : 8 389
    Points
    8 389
    Par défaut
    Mais ce qui m' étonne avec cette méthode c'est que je ne dois même plus inclure les .h .
    Tu PEUX ne pas inclure les headers dans certains cas et cela est conforme à la norme du C, bien que cette pratique tend à disparaître. Par contre, que tu ne dois pas les inclure, ça ce n'est pas normal. Que se passe t-il si tu les inclus ?

    Du coup à la compilation ça doit inclure toutes les fonctions
    Ca, c'est sûr que ça n'arrivera jamais, sauf avec un compilateur spécialement conçu pour faire ça mais je n'en connais aucun en tout cas.

    A vrai dire je ne comprend pas trop ce que fait code blocks
    On pourra mieux en parler si tu postais un exemple minimal de projet qui produit ton problème, pour corriger tes fautes, etc.

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    82
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2006
    Messages : 82
    Points : 50
    Points
    50
    Par défaut
    Deja merci pour ton aide , je ne pense pas qu uploader mon projet soit vraiment utile .

    En fait c'est simple, pour créer le .a j'ai donc créé un projet librairie static et j'y ai ajouté un fichier fonction_tableau.h et fonction_tableau.c , le .c contient quelques fonction simple que j'ai réécrite pour m'exercer( comme rechercher un caractère , déterminer la taille etc .) et mon .h, et bien les headers .

    ensuite j'ai mi le .a obtenu dans un dossier lib que j'ai ajouté dans setting/Compiler and debugger/ et sous l'onglet linker setting dans link librairies .

    En faisant cela quand je crée un nouveau projet, je peut utiliser ces fonctions sans même inclure aucun headers .
    C'est pour ça que je pensais qu'en compilant, il incluait tout les fichiers.a que j'ai dans mon dossier lib . mais je n'y connais rien en la matière

    Alors que ce que j'aurai voulu, c'est mettre mes fichiers sources (.a sous codebloks) et mes .h dans des dossiers differents qui les centralisent pour ensuite les ajouter dans search directories dans les options de code blocks . Afin de pouvoir les utiliser quand je crée un nouveau projet, en incluant uniquement les headers .

    Comme ca à la compilation il n'inclurait que les bibliotheques de fonctions donc j'ai besoin .

Discussions similaires

  1. Création d'une bibliothèque statique avec automake
    Par Analou dans le forum Bibliothèques, systèmes et outils
    Réponses: 3
    Dernier message: 20/06/2013, 12h34
  2. Réponses: 1
    Dernier message: 20/06/2007, 12h34
  3. Problème de lien avec une bibliothèque statique
    Par streetpc dans le forum C++/CLI
    Réponses: 2
    Dernier message: 28/10/2006, 17h38
  4. Création d'une bibliothèque.
    Par Kr00pS dans le forum C
    Réponses: 11
    Dernier message: 12/06/2006, 15h54
  5. Utiliser une bibliothèque statique
    Par djflex68 dans le forum MFC
    Réponses: 6
    Dernier message: 15/08/2005, 19h26

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