Bonjour,
voila je cherche comment créer une librairie dynamique "libtoto.so" mais je voudrais qu'elle ne dépende pas d'autres librairies (et surtout pas des librairies libstdc++ etc...)
J'ai essayé les options de g++ -static et -static-libgcc, j'ai aussi essayé via ld directement. j'arrive parfaitement a créer des exécutables standalone mais jamais de librairie dynamique, soit je n'ai pas de message mais ldd m'indique toujours les liens, soit j'ai les messages static et shared/--pic-executable ne peuvent pas etre utilisés ensemble ou encore undefined reference to main...
Si quelqu'un connait l'astuce ou commande magique
# Nouvel essai
Posté par zzmaxfr . Évalué à 2.
undefined versioned symbol name std::time_put_w@@GLIBCPP_3.2
failed to set dynamic section sizes: Bad value
[^] # Re: Nouvel essai
Posté par Obsidian . Évalué à 3.
Si tu veux en fait en faire une bibliothèque statique, il faut utiliser une bibliothèque libstdc++ statique elle-aussi, ce qui n'est pas facile à trouver (il vaut mieux recompiler la sienne, ce qui n'est pas une mince affaire, à priori).
Enfin, un coup de ldd montre que la libstdc++ est elle-même dépendante de la libc, la libm (fonctions mathématiques), et de la libgcc_s. Mais çà, 90% des programmes purement C le sont aussi. Ça devrait donc passer quand même, mais il faudra au moins préciser un « -lm » dans tes flags car la bibliothèque mathématique n'est pas encore considérée comme standard.
[^] # Re: Nouvel essai
Posté par Obsidian . Évalué à 3.
Hmpf. Posté trop vite, encore une fois. Je n'avais pas vu que tu avais essayé d'utiliser libstdc++.a .
Ton problème est assez récurrent avec les libs statiques :Elles sont souvent une image figée d'un environnement particulier à un moment donné. Moralité : elle n'est plus compatible, car elle embarque les numéros de versions dans ses noms de fonctions, à la manière des modules du noyau.
Essaie de trouver une version qui correspond parfaitement à la tienne.
[^] # Re: Nouvel essai
Posté par zzmaxfr . Évalué à 1.
en fait la libstdc++.a proviens de l'install du g++ (que j'ai compilé) que j'utilise pour tenter de compiler la librairie. Et effectivement le code utilise de nombreux objets de la STL...
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.