|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Inactif
Inscription : mars 2006 Messages : 852 ![]() |
Hallo les Linuxien(e)s,
Est-il possible de créer une librairie statique (*.a) à partir d'une librairie dynamique (*.so.1), même sans en avoir les sources ? Je pense que oui, logiquement, ça doit être possible, puisque la librairie dynamique contient les sections binaire que l'on voudrait voir apparaître dans la librairie statique.... mais comment faire ? Ou alors y at-il un moyen de lier statiquement à une librairie dynamique, tout en liant dynamiquement aux autres librairies ? je pause cette question pour une compilateur qui fourni une librairie dynamique non standard sur les systèmes Linux. Et malheureusement, toute les applications qu'il produit sont lié à cette librairie, et donc ne fonctionne pas sur les Linux où cette librairie n'est pas installé. Quel est la meilleur solution, et comment l'appliquer, entre :
Et si on remplacer une librairie dynamique par une librairie statique, le lieur vat-il la trouver comme il trouverait la librairie dynamique ? Merci d'avance pour toute information |
|
|
00
|
|
|
#2 |
|
Membre Expert
![]() Étudiant Inscription : octobre 2005 Messages : 1 202 ![]() |
la solution retenue généralement c'est de distribuer le .so avec l'executable
et de jouer avec LD_LIBRARY_PATH et/ou LD_PRELOAD. sinon pour ta question (transformer un .so en .a), aucune idée, mais à priori rien d'impossible.
__________________
click my www ............|___ ...................\ .................._|_ ..................\ / ..................." |
|
|
00
|
|
|
#3 |
|
Inactif
Inscription : mars 2006 Messages : 852 ![]() |
En fait je posais la question en pensant à un contexte où ces modifications ne sont pas possibles (pas possible d'installer la librairie, et encore moins de modifier la configuration du chargeur de librairie). Mais merci quand-même pour l'info.
Oui, je pense que ça n'a rien d'impossible, mais je ne pense pas que ce genre d'application existe, tout simplement parce que qu'elle ne serait que trop rarement utile. Sinon, vu l'organisation des fichiers ELF en section, et vu comment sont organisées les liaisons entre les sections, alors oui, c'est possible en théorie. |
|
|
00
|
|
|
#4 | ||
|
Membre Expert
![]() ![]() Anthony DesvernoisIngénieur sécurité & risque Inscription : juin 2007 Messages : 1 501 ![]() |
Code :
* il faut compiler les programmes utilisant ta librairie dynamique avec la librairie statique et non pas la dynamique. Il faut donc disposer de la lib statique, des sources, et modifier le makefile/configure en consequence. Tu as l'option --static de gcc, ou tu peux simplement supprimers le lien vers la lib des flags de linkage et rajouter ton .a dans les objets a compiler (puisque apres tout un .a n'est rien d'autre qu'une archive contenant les .o prets a linker).
__________________
"Voyager, c'est découvrir que tout le monde a tort", Aldous Huxley "Less is more" Ludwig Mies Van Der Rohe Risk & Security Mgmt |
||
|
00
|
Copyright © 2000-2012 - www.developpez.com