Bonjour, je viens demander l'avis de spécialiste car depuis une semaine je me retrouve confronter à un problème concernant mon binaire 32 et 64-bits que j'aimerais rendre compatible avec le maximum de distributions.
Pour faire mes tests, j'utilise une machine virtuelle avec Fedora et Ubuntu. Je compile depuis ArchLinux et le soucis c'est que je dispose des dernières libs. Du coup, mon binaire requière des versions récentes de ces librairies et il est donc impossible de le lancer sur des anciennes versions d'Ubuntu et Fedora. La seule parade que j'ai trouvé, est de lier le maximum de libs pour l'archive binaire. En revanche pour le paquet DEB d'Ubuntu, je n'ai linké statiquement que libjpeg mais il faut disposer de la dernière version d'Ubuntu qui embarque glibc 2.17. Pour Fedora, j'ai dû compiler depuis la machine virtuelle car la FC18 embarque glibc 2.16.
J'ai essayé de linker statiquement glibc, mais sans succès. Par contre, lors de mes essais, j'avais tenté de fournir glibc 2.15 dans le dossier du binaire et étrangement le binaire 64-bits se lançait sur de vielles distributions. J'ai pensé que c'était justement grâce à lib dans le dossier mais après sa suppression, le binaire se lance quand même. Alors je ne sais pas trop ce qui a bien pu se passer car en regardant les paramètres de g++, je ne vois rien de spécial. Quant à la version 32-bits, impossible de la faire tourner sans glibc 2.17.
Bref, je ne sais plus trop quoi faire et je me vois mal m'amuser à compiler pour chaque distribution selon les versions des libs. D'autant plus que sous ArchLinux, les mises à jours arrivent vite.
Y a t-il une solution pour éviter ce genre de soucis? Merci
Partager