[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: question naïve sur les -dev*.deb



Le Friday 30 November 2001 à 13:41:05, georges mariano a écrit:
> c'est là où ça coince ... petit hic, l'édition des liens en C
> n'est pas mon contexte habituel, je peux donc faire un glissement
> (style peau de banane) dans mon intuition...
> parce que dans mon souvenir, l'édition des liens  se ferait plutôt 
> entre -dev (lib1-dev et lib2-dev).
> Je pensais que toutes les infos étaient dans les includes et donc,
> "à strictement parler" (et je suis d'accord avec Roland),
> l'utilisation
> des paquets siamois devraient pourvoir être séparée. L'édition des
> liens n'a (en fait) pas besoin d'accéder aux .o .so et cie.
> (houlala, je prends des risques...)

Oui, tu prend des risques. Et tu glisses sur le peau de banane que tu as
déposé 11 lignes plus haut :o)

"La Réponse" est souvent dans "La Table de Loi" i.e. "La Charte Debian".
/usr/share/doc/LANG/fr/debian/policy.fr.txt.gz

  9. Les bibliothèques partagées
  ------------------------------
  [...]
     Troisièmement, le paquet de développement associé comportera un lien
     symbolique pour la bibliothèque partagée sans numéro de version.  Par
     exemple, le paquet `libgdbm1-dev' inclura un lien symbolique de
     `/usr/lib/libgdbm.so' vers `libgdbm.so.1.7.3'.  Ce lien symbolique est
     nécessaire à `ld' quand il compile les paquets ; il cherche en effet
     seulement `libgdbm.so' pour une compilation dynamique.

Le paquet -dev ne contient d'un lien symbolique '/usr/lib/libtruc.so'
vers la bonne librairie '/usr/lib/libtruc.so.1.2.3'.

Les .h sont utilisés à la compilation des différents .o du projet. Mais
lors de la réalisation du binaire il linker les .o et les librairies
dynamiques et ld(1) à besoin de /usr/lib/libtruc.so (et donc de
/usr/lib/libtruc.so.1.2.3 puisque /usr/lib/libtruc.so n'est qu'un lien).

ld.so(8) le linker dynamique (à l'exécution) n'a pas besoin du .so
puisque le numéro de version de lib est inclus dans le binaire
(vérifiable avec ldd(1)).

L'avantage est qu'on peut avoir plusieurs versions libtruc.deb alors
qu'on ne peut avoir qu'un seul libtruc-dev.deb.

Par exemple libc5 et libc6 en même temps. Il faut une seule version
libc?-dev sinon le linker ld (à la compil) ne saurait pas avec quelle
version linker.

> Où alors faut que je revois ma conception de la "compilation séparée"

C'est toi qui l'a dit :-)

A+

-- 
 Dr. Ludovic Rousseau                        Ludovic.Rousseau@free.fr
 -- Normaliser Unix c'est comme pasteuriser le Camembert, L.R. --



Reply to: