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![]()
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![]()
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.
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 :
Or, à terme, mon programme sera compilé sur d'autres cibles.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.
Sinon, j'ai trouvé ça:
Est-ce que ça pourrait convenir?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 = …
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![]()
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 :
(Il n'y a que des .h dans les INCLUDE)
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
Je crois que je raconte n'importe quoi, on ne doit pas mettre les .h dans _SOURCES.
Partager