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éer librairie statique codeblocks


Sujet :

Code::Blocks

  1. #1
    Membre habitué
    Avatar de Nykoo
    Profil pro
    Inscrit en
    Février 2007
    Messages
    234
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 234
    Points : 166
    Points
    166
    Par défaut Créer librairie statique codeblocks
    Bonjour, j'essaye de créer une librairie statique à l'aide de Codeblocks.

    Je suis parti de 2 fichiers: stg.h et stg.c.
    J'ai crée un projet "Static library" dans Codeblocks puis importé les 2 fichiers.
    J'ai fait "build" et obtenu un fichier stg.a
    J'ai copié stg.h dans: RépertoireCodeblock/include/ et stg.a dans RépertoireCodeblock/lib/

    Pour tester j'ai inclu le header stg.h avec: #include <stg.h> dans un projet quelconque.

    A la compilation de ce projet il trouve stg.h, reconnait un type défini dans le header, mais ne trouve pas la définition d'une de mes fonctions définies dans la librairie:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Project   : Test
    Compiler  : GNU GCC Compiler (called directly)
    Directory : E:\Documents\Programmes\test\
    --------------------------------------------------------------------------------
    Switching to target: default
    Compiling: main.c
    Linking console executable: E:\Documents\Programmes\test\test.exe
    .objs\main.o: In function `main':
    E:/Documents/Programmes/test/main.c:10: undefined reference to `str_to_stg'
    collect2: ld returned 1 exit status
    Process terminated with status 1 (0 minutes, 0 seconds)
    1 errors, 0 warnings
    J'ai essayer de générer stg.a de plusieurs manières différentes à partir de codeblocks: importer stg.c tout seul puis faire un "build", importer stg.h et stg.c puis faire un "build".

    J'ai essayer de renommer le fichier généré de stg.a vers libstg.h d'après ce que j'ai vu dans d'autres topic mais rien y fait.

    Je me suis trompé dans ma démarche?

  2. #2
    Rédacteur
    Avatar de Franck.H
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2004
    Messages
    6 951
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Service public

    Informations forums :
    Inscription : Janvier 2004
    Messages : 6 951
    Points : 12 462
    Points
    12 462
    Par défaut
    Est-ce que tu as ajouté la bibliothèque à ton projet ? Le header ne suffit pas.
    Mon Site
    Ma bibliothèque de gestion des chaînes de caractères en C

    L'imagination est plus importante que le savoir. A. Einstein

    Je ne répond à aucune question technique par MP, merci d'avance !

  3. #3
    Membre habitué
    Avatar de Nykoo
    Profil pro
    Inscrit en
    Février 2007
    Messages
    234
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 234
    Points : 166
    Points
    166
    Par défaut
    Tu as vu juste, j'avais pas ajouté la librairie. Merci.

    Pourquoi il faut l'indiquer au compilateur? Si il voit qu'on demande le stg.h il ne va pas chercher le stg.a qui se trouve au même endroit que les autres librairies?

    Bien qu'apparemment les stdio.a stdlib.a ne sont pas dans ce répertoire (/lib). Ils sont où?

  4. #4
    Rédacteur
    Avatar de Franck.H
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2004
    Messages
    6 951
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Service public

    Informations forums :
    Inscription : Janvier 2004
    Messages : 6 951
    Points : 12 462
    Points
    12 462
    Par défaut
    Citation Envoyé par Nykoo Voir le message
    Pourquoi il faut l'indiquer au compilateur? Si il voit qu'on demande le stg.h il ne va pas chercher le stg.a qui se trouve au même endroit que les autres librairies?
    Hé bien car d'une part, ce n'est pas le compilateur qui se charge de cette partie mais l'éditeur de liens et d'autre part, il ne peut pas deviner que tu veuilles ajouter une bibliotèque statique ou dynamique en plus pour ton projet. Les header ne sont qu'une simple interface pour le compilateur.

    Citation Envoyé par Nykoo Voir le message
    Bien qu'apparemment les stdio.a stdlib.a ne sont pas dans ce répertoire (/lib). Ils sont où?
    Hé bien cela dépend du système d'exploitation mais en générale, les fonctions standard sont directement incluses dans la bibliothèque de fonctions bas niveau (si on peut dire ainsi) de l'OS concerné.
    Mon Site
    Ma bibliothèque de gestion des chaînes de caractères en C

    L'imagination est plus importante que le savoir. A. Einstein

    Je ne répond à aucune question technique par MP, merci d'avance !

  5. #5
    Membre habitué
    Avatar de Nykoo
    Profil pro
    Inscrit en
    Février 2007
    Messages
    234
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 234
    Points : 166
    Points
    166
    Par défaut
    Merci encore. Bon le mieux ça serait que je trouve des cours sur la compilation!

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

Discussions similaires

  1. Librairie statique avec codeblocks
    Par zerimbak dans le forum Code::Blocks
    Réponses: 1
    Dernier message: 24/03/2013, 20h41
  2. Réponses: 3
    Dernier message: 21/11/2007, 08h32
  3. [C++]Créer des librairies statiques
    Par aiolia_aiolos dans le forum MFC
    Réponses: 3
    Dernier message: 04/01/2006, 12h05
  4. Réponses: 2
    Dernier message: 19/08/2005, 16h02
  5. librairie statique/dynamique
    Par trop_wizz dans le forum MFC
    Réponses: 4
    Dernier message: 11/04/2005, 10h04

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