URL: https://linuxfr.org/forums/programmation-c--2/posts/biblioth%C3%A8ques-statiques-dynamiques Title: Bibliothèques statiques & dynamiques Authors: Mildred Date: 2005年01月26日T23:11:42+01:00 Tags: Score: 0 Voila, j'ai un problème ... J'essaie de compiler une petite application qui est liée a une bibliothèque faite maison (raydium). En gros, je compile ma lib et ensuite, je crée libraydium.a et libraydium.so. Un problème c'est que raydium est lui-même lié statiquement à libphp.a et à libode.a. Il faudrait donc que libraydium.a contienne les deux autres bibliothèques. Comment faire pour inclure le contenu d'une archive .a (ode et php) dans une autre archive .a (raydium) ? Un autre problème: lorsque je compile un petit exemple et que je le lie à libraydium.so, il ne s'execute pas: `./test: relocation error: ./libraydium.so.0: undefined symbol: raydium_trigo_abs` Si le symbole « raydium_trigo_abs » n'est pas défini c'est simplement que c'est une macro définie (dans le fichier header) par: `#define raydium_trigo_abs(A) ( (A) < (0) ? (-A) : (A) )` Je me demande comment gcc a pu compiler mon fichier test avec cette fonction surtout qu'après la précompilation de mon fichier test, il ne fait nulle-part référance à cette fonction (et c'est normal, les #define ont joué leur role). `mildred@louve:~/Projects/raydium/raytest/raydium_prog $ gcc -E test6b.c -Iphp/ -Iphp/main/ -Iphp/Zend -Iphp/TSRM | grep raydium_trigo_abs _rien du tout_ mildred@louve:~/Projects/raydium/raytest/raydium_prog $` C'est normal ?

AltStyle によって変換されたページ (->オリジナル) /