Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 06/05/2008, à 06:56

Age_of_Aquarius

Compilation statique sous Linux, en GCC notamment.

Bonjour à tous.

Je voudrais savoir comment peut-on compiler un logiciel à partir de ses sources pour obtenir une application parfaitement autonome, c'est-à-dire incluant, en plus du fichier exécutable, toutes les librairies nécessaire à son fonctionnement, à la manière de certains logiciels en version portable comme FireFox par exemple ?

Est ce que les options à passer pendant la compilation dépendent uniquement du compilateur (GCC) ou bien chaque programmeur définit ses propres options à utiliser ?

Merci pour vos réponses.

Hors ligne

#2 Le 06/05/2008, à 10:22

kaworu

Re : Compilation statique sous Linux, en GCC notamment.

Salut. dans man gcc on lit:

  4363        -static
  4364        On systems that support dynamic linking, this prevents linking with the shared libraries.  On other systems, this option has no
  4365        effect.

donc essaye de donner -static lors de l'édition de liens.

Je ne connais pas la raison pour laquelle tu veux faire cela, mais sache que de manière générale c'est une très mauvaise pratique smile
Il vaut mieux compiler statiquement des outils comme busybox que des (grosse) applications d'utilisateur comme firefox (pas bien!).

Dernière modification par kaworu (Le 06/05/2008, à 10:22)


"There are in order of increasing severity: lies, damn lies, statistics, and computer benchmarks."

Hors ligne

#3 Le 06/05/2008, à 17:44

Age_of_Aquarius

Re : Compilation statique sous Linux, en GCC notamment.

kaworu a écrit :

Je ne connais pas la raison pour laquelle tu veux faire cela, mais sache que de manière générale c'est une très mauvaise pratique smile

Je veux la faire pour obtenir des applications portables (sur une clé USB par exemple) que je pourrais utiliser sur différents systèmes Linux.
À part la redondances des fichiers bibliothèques je ne vois pas autre inconvénient dans cette pratique.

Hors ligne

#4 Le 07/05/2008, à 00:28

k-o-x

Re : Compilation statique sous Linux, en GCC notamment.

Age_of_Aquarius a écrit :

À part la redondances des fichiers bibliothèques je ne vois pas autre inconvénient dans cette pratique.

Le temps de chargement tongue
En effet tu risques d'avoir a recharger des librairies déjà chargées dans le système lorsque tu lances un exécutable linké statiquement...

Hors ligne

#5 Le 07/05/2008, à 09:33

Age_of_Aquarius

Re : Compilation statique sous Linux, en GCC notamment.

k-o-x a écrit :

Le temps de chargement tongue
En effet tu risques d'avoir a recharger des librairies déjà chargées dans le système lorsque tu lances un exécutable linké statiquement...

C'est vrai. Mais est ce qu'il existe une manière plus efficace sans ces inconvénients qui permet d'obtenir une application portable et exécutable sur plusieurs systèmes Linux ?

Hors ligne

#6 Le 07/05/2008, à 10:00

Karl_le_rouge

Re : Compilation statique sous Linux, en GCC notamment.

Clairement non, les liens statiques saimal (*) mais parfois on n'a pas le choix.
Après, on peut toujours recompiler chez soi.

(*) Voici l'explication par Ulrich Drepper lider maximo de la GNU Libc.
http://people.redhat.com/drepper/no_static_linking.html

Hors ligne

#7 Le 08/05/2008, à 21:15

Age_of_Aquarius

Re : Compilation statique sous Linux, en GCC notamment.

Merci kaworu et k-o-x pour vos réponses.

Karl_le_rouge, ton lien est très intéressant. Merci beaucoup.

Je conclus donc qu'il n'y a pas d'autres solutions pour obtenir des applications portables que la compilation statique malgré ses inconvénients.

Hors ligne