3

Mon équipe est prête à lancer la première version de notre programme Linux et souhaite le faire de la manière la plus simple possible (pour les utilisateurs).Distribution d'un binaire ELF 32 bits à liaison statique - Est-ce qu'il fonctionnera sur toutes les plateformes?

Le programme n'a pas besoin de fichiers externes, pas d'installation et est lié statiquement.

ELF 32-bit LSB executable, Intel 80386, version 1 (GNU/Linux), statically linked, for GNU/Linux 2.6.15, not stripped 

Ma question est de savoir si un tel binaire fonctionne sur la plupart des plates-formes Linux (Ubuntu, Redhat, OpenSuse, etc.)?

Je suis également un peu préoccupé par la partie où il est écrit 'pour GNU/Linux 2.6.15', est-ce que cela signifie qu'ils ont besoin du noyau 2.6.15 ou supérieur?

Répondre

3

Les programmes complètement statiques ne sont plus recommandés.

La couche de portabilité déplacée des appels du noyau dans les bibliothèques de base (souvenez-vous du désaster pthread et des problèmes avec les threads LinuxThreads < -> NPTL?).

Suivez la norme LSB 4.0. Faites confiance à l'existence des bibliothèques mentionnées ici (pas si nombreuses malheureusement) et regroupez toutes les autres bibliothèques partagées avec votre application. Il y a un drapeau d'éditeur de liens - je pense que c'était le cas - L - où vous pouvez définir un chemin ldd qui a la priorité sur tous les autres paramètres pendant le chargement de la bibliothèque partagée afin que vos bibliothèques soient toujours chargées en premier. Assurez-vous que toutes les bibliothèques n'appellent que des fonctions API approuvées LSB (ou jetez un coup d'œil sur le site Web LSB et voyez à quel point un appel API LSB non pris en charge est sérieux - parfois vous ne pouvez pas l'éviter. Distributions qui prennent en charge cet appel).

Ceci est la méthode recommandée pour fournir des exécutables binaires. Et ça craint toujours beaucoup sur Linux par rapport à Windows/MacOSX.

+0

Ok, merci pour l'info, je vais y jeter un coup d'oeil. – Nick

Questions connexes