link d'une librairie statique utilisant une autre lib statique ?
3 réponses
star-shoot
Bonjour,
J'ai un projet organis=E9 comme suit :
appli
|- *.cpp
|- *.h
libs
|- base
|- *.{cpp,h} -> libbase.a
|- etendue1 : utilise base
|- *.{cpp,h} -> libetendue1.a
|- etendue2 : utilise base
|- *.{cpp,h} -> libetendue2.a
Et donc mon appli utilise les deux librairies statiques etendue1 et
etendue2
Le probl=E8me c'est qu'=E0 la compilation g++ me sort des r=E9f=E9rences
inconnues sur des fonctions de la librairie base, m=EAme si j'ajoute
-lbase dans le link.
O=F9 est-ce que je me trompe dans la d=E9marche s'il vous plait ?
Merci d'avance.
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Franck Branjonneau
écrivait:
Le problème c'est qu'à la compilation g++ me sort des références inconnues sur des fonctions de la librairie base, même si j'ajoute -lbase dans le link.
C'est probablement du à l'ordre de tes -l. Extrait de la documentation de gcc :
3.13 Options for Linking
[...]
`-lLIBRARY' `-l LIBRARY'
[...]
It makes a difference where in the command you write this option; the linker searches and processes libraries and object files in the order they are specified. Thus, `foo.o -lz bar.o' searches library `z' after file `foo.o' but before `bar.o'. If `bar.o' refers to functions in `z', those functions may not be loaded.
[...]
-- Boujou t'chu tè. Franck Branjonneau
star-shoot@fr.st écrivait:
Le problème c'est qu'à la compilation g++ me sort des références
inconnues sur des fonctions de la librairie base, même si j'ajoute
-lbase dans le link.
C'est probablement du à l'ordre de tes -l. Extrait de la documentation
de gcc :
3.13 Options for Linking
[...]
`-lLIBRARY'
`-l LIBRARY'
[...]
It makes a difference where in the command you write this option;
the linker searches and processes libraries and object files in
the order they are specified. Thus, `foo.o -lz bar.o' searches
library `z' after file `foo.o' but before `bar.o'. If `bar.o'
refers to functions in `z', those functions may not be loaded.
Le problème c'est qu'à la compilation g++ me sort des références inconnues sur des fonctions de la librairie base, même si j'ajoute -lbase dans le link.
C'est probablement du à l'ordre de tes -l. Extrait de la documentation de gcc :
3.13 Options for Linking
[...]
`-lLIBRARY' `-l LIBRARY'
[...]
It makes a difference where in the command you write this option; the linker searches and processes libraries and object files in the order they are specified. Thus, `foo.o -lz bar.o' searches library `z' after file `foo.o' but before `bar.o'. If `bar.o' refers to functions in `z', those functions may not be loaded.
Le problème c'est qu'à la compilation g++ me sort des références inconnues sur des fonctions de la librairie base, même si j'ajoute -lbase dans le link.
C'est probablement du à l'ordre de tes -l. Extrait de la documentation de gcc :
En passant, c'est général pour les éditeurs de liens sous Unix (et semblables). Et probablement ailleurs aussi : au moins, elle valait pour tous les éditeurs de liens que je connaissais avant Unix aussi.
-- James Kanze GABI Software Conseils en informatique orientée objet/ Beratung in objektorientierter Datenverarbeitung 9 place Sémard, 78210 St.-Cyr-l'École, France, +33 (0)1 30 23 00 34
Franck Branjonneau wrote:
star-shoot@fr.st écrivait:
Le problème c'est qu'à la compilation g++ me sort des
références inconnues sur des fonctions de la librairie base,
même si j'ajoute -lbase dans le link.
C'est probablement du à l'ordre de tes -l. Extrait de la
documentation de gcc :
En passant, c'est général pour les éditeurs de liens sous Unix
(et semblables). Et probablement ailleurs aussi : au moins,
elle valait pour tous les éditeurs de liens que je connaissais
avant Unix aussi.
--
James Kanze GABI Software
Conseils en informatique orientée objet/
Beratung in objektorientierter Datenverarbeitung
9 place Sémard, 78210 St.-Cyr-l'École, France, +33 (0)1 30 23 00 34
Le problème c'est qu'à la compilation g++ me sort des références inconnues sur des fonctions de la librairie base, même si j'ajoute -lbase dans le link.
C'est probablement du à l'ordre de tes -l. Extrait de la documentation de gcc :
En passant, c'est général pour les éditeurs de liens sous Unix (et semblables). Et probablement ailleurs aussi : au moins, elle valait pour tous les éditeurs de liens que je connaissais avant Unix aussi.
-- James Kanze GABI Software Conseils en informatique orientée objet/ Beratung in objektorientierter Datenverarbeitung 9 place Sémard, 78210 St.-Cyr-l'École, France, +33 (0)1 30 23 00 34