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

Bibliothèques, systèmes et outils C Discussion :

Création bibliothèque / Autotools


Sujet :

Bibliothèques, systèmes et outils C

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Femme Profil pro
    Étudiant
    Inscrit en
    Juin 2013
    Messages
    52
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Juin 2013
    Messages : 52
    Par défaut Création bibliothèque / Autotools
    Bonjour,
    Je souhaite développer un programme avec les autotools (jusque là, pas de problèmes).
    Le truc, c'est que je voudrais que ceux-ci créent d'abord une bibliothèque statique (à partir de .c et de .h).
    Est-ce possible?
    Merci d'avance

  2. #2
    Membre Expert
    Avatar de kwariz
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Octobre 2011
    Messages
    898
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Chef de projet en SSII
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2011
    Messages : 898
    Par défaut
    Bonjour,

    oui c'est possible.
    Ensuite c'est un peu différent si tu utilises ou non libtool (je te conseille fortement de l'utiliser), et si cette bibliothèque statique est une bibliothèque que tu vas distribuer ou si ce n'est qu'une bibliothèque de confort, c'est-à-dire que tu vas la créer puis uniquement l'utiliser pour la lier avec d'autres cibles sans jamais la distribuer.

  3. #3
    Membre averti
    Femme Profil pro
    Étudiant
    Inscrit en
    Juin 2013
    Messages
    52
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Juin 2013
    Messages : 52
    Par défaut
    Cette bibliothèque ne sera jamais distribuée, elle me servira seulement à créer un exécutable en la liant avec des .c .
    Je n'ai jamais utilisé libtool, mais je viens de lire sur wikpédia :
    libtool s'utilise très mal dans les environnements de compilation croisée, le fait qu'il enregistre des informations en dur dans les fichiers .la (chemin vers les bibliothèques...) peut poser plus de problèmes que cet outil n'en résout.
    Or, à terme, mon programme sera compilé sur d'autres cibles.

    Sinon, j'ai trouvé ça:
    Building a library is much like building a program. In this case, the name of the primary is LIBRARIES. Libraries can be installed in libdir or pkglibdir.

    See A Shared Library, for information on how to build shared libraries using libtool and the LTLIBRARIES primary.

    Each _LIBRARIES variable is a list of the libraries to be built. For instance, to create a library named libcpio.a, but not install it, you would write:

    noinst_LIBRARIES = libcpio.a
    libcpio_a_SOURCES = …
    Est-ce que ça pourrait convenir?

  4. #4
    Membre Expert
    Avatar de kwariz
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Octobre 2011
    Messages
    898
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Chef de projet en SSII
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2011
    Messages : 898
    Par défaut
    Ah oui ... j'ai oublié que tu avais déjà posté une question sur la compilation croisée.
    Tu n'auras pas de problème avec libtool même en compilation croisée si tu utilises une bibliothèque de confort.
    Mais l'exemple que tu donnes est parfait

  5. #5
    Membre averti
    Femme Profil pro
    Étudiant
    Inscrit en
    Juin 2013
    Messages
    52
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Juin 2013
    Messages : 52
    Par défaut
    Ok, dernière question alors :
    J'ai énormément de .h pour créer ma bibliothèque, et ceux-ci sont regroupés dans différents répertoires INCLUDE.
    Est-ce possible de faire quelque chose comme :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    noinst_LIBRARIES = libcpio.a
    libcpio_a_SOURCES = dossier1/dossier2/INCLUDE dossier3/dossier4/dossier5/INCLUDE
    (Il n'y a que des .h dans les INCLUDE)

  6. #6
    Membre averti
    Femme Profil pro
    Étudiant
    Inscrit en
    Juin 2013
    Messages
    52
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Juin 2013
    Messages : 52
    Par défaut
    Je crois que je raconte n'importe quoi, on ne doit pas mettre les .h dans _SOURCES.

Discussions similaires

  1. Réponses: 3
    Dernier message: 24/08/2014, 19h11
  2. Création bibliothèque en langage C pour PureBasic
    Par comtois dans le forum PureBasic
    Réponses: 0
    Dernier message: 07/03/2012, 10h25
  3. Pb création diagramme : bibliothèque non inscrite
    Par jeff37 dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 12/08/2004, 16h38
  4. Réponses: 8
    Dernier message: 03/09/2003, 00h47

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