Forum |  HardWare.fr | News | Articles | PC | Prix | S'identifier | S'inscrire | Shop Recherche
1211 connectés 

  FORUM HardWare.fr
  Linux et OS Alternatifs
  Codes et scripts

  [Debian] Compiler en binaire statique + changer l'archi

 



 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[Debian] Compiler en binaire statique + changer l'archi

n°911054
nicephore1​7
Un cinglé parmis les fous
Posté le 09-05-2007 à 16:34:54  profilanswer
 

Bonjour,
 
Je cherche à compiler une exécutable en binaire statique, ce qui est indispensable pour pouvoir l'intégrer à un System Rescue CD. Le seul hic c'est que je ne sais pas faire.
 
J'ai cru comprende qu'il fallait faire un ./configure --enable-static --disable-shared suivi d'un make.
 
Mais ensuite? Si je fait un make intall, je ne risque pas de corrompre mon système hôte qui dispose du même logiciel mais dans une autre version?
 
J'ai farfouilé sur Google mais j'ai rein trouvé de cohérant, merci de votre aide.
 
A+


Message édité par nicephore17 le 10-05-2007 à 13:48:03

---------------
Mac Pro powered (sorry)
mood
Publicité
Posté le 09-05-2007 à 16:34:54  profilanswer
 

n°911055
dr-freuder​ick
Asymétrie Cognitive.
Posté le 09-05-2007 à 16:35:28  profilanswer
 

Je comprend pas le truc du "static", quelqu'un peut expliquer ?


---------------
The Toast, un docu-fiction qui teste la loi de murphy et les films en carton
n°911064
black_lord
Modérateur
Truth speaks from peacefulness
Posté le 09-05-2007 à 16:44:59  profilanswer
 

dr-freuderick a écrit :

Je comprend pas le truc du "static", quelqu'un peut expliquer ?


compiler un binaire en statique te permet de ne pas dépendre de ton environnement (les librairies sur lesquelles tu linkes sont inclues dans le binaire). Ca fait grossir les binaires accessoirement.
 
exemple :
 

[nico@moria:~] ldd `which evolution`
        linux-gate.so.1 =>  (0xffffe000)
        libeshell.so.0 => /usr/lib/evolution/2.10/libeshell.so.0 (0xb7f1b000)
        libetimezonedialog.so.0 => /usr/lib/evolution/2.10/libetimezonedialog.so.0 (0xb7f16000)
        libemiscwidgets.so.0 => /usr/lib/evolution/2.10/libemiscwidgets.so.0 (0xb7eb7000)
        libeutil.so.0 => /usr/lib/evolution/2.10/libeutil.so.0 (0xb7e87000)
        liblpint-bonobo.so.0 => /usr/lib/liblpint-bonobo.so.0 (0xb7e72000)
        liblaunchpad-integration.so.0 => /usr/lib/liblaunchpad-integration.so.0 (0xb7e6e000)
        libgnomeui-2.so.0 => /usr/lib/libgnomeui-2.so.0 (0xb7de0000)
        libglade-2.0.so.0 => /usr/lib/libglade-2.0.so.0 (0xb7dc7000)
        libbonoboui-2.so.0 => /usr/lib/libbonoboui-2.so.0 (0xb7d69000)
        libgnomevfs-2.so.0 => /usr/lib/libgnomevfs-2.so.0 (0xb7d10000)
        libgnome-keyring.so.0 => /usr/lib/libgnome-keyring.so.0 (0xb7d03000)
        libgnomecanvas-2.so.0 => /usr/lib/libgnomecanvas-2.so.0 (0xb7cd9000)
        libgnome-2.so.0 => /usr/lib/libgnome-2.so.0 (0xb7cc4000)
        libpopt.so.0 => /lib/libpopt.so.0 (0xb7cbb000)
        libart_lgpl_2.so.2 => /usr/lib/libart_lgpl_2.so.2 (0xb7ca6000)
        libpangoft2-1.0.so.0 => /usr/lib/libpangoft2-1.0.so.0 (0xb7c7b000)
        libbonobo-2.so.0 => /usr/lib/libbonobo-2.so.0 (0xb7c1f000)
        libbonobo-activation.so.4 => /usr/lib/libbonobo-activation.so.4 (0xb7c0a000)
        libgconf-2.so.4 => /usr/lib/libgconf-2.so.4 (0xb7bd7000)
        libORBit-2.so.0 => /usr/lib/libORBit-2.so.0 (0xb7b84000)
        libgthread-2.0.so.0 => /usr/lib/libgthread-2.0.so.0 (0xb7b7f000)
        libgtk-x11-2.0.so.0 => /usr/lib/libgtk-x11-2.0.so.0 (0xb7827000)
        libxml2.so.2 => /usr/lib/libxml2.so.2 (0xb770a000)
        libgdk-x11-2.0.so.0 => /usr/lib/libgdk-x11-2.0.so.0 (0xb7684000)
        libatk-1.0.so.0 => /usr/lib/libatk-1.0.so.0 (0xb7668000)
        libgdk_pixbuf-2.0.so.0 => /usr/lib/libgdk_pixbuf-2.0.so.0 (0xb7651000)
        libpangocairo-1.0.so.0 => /usr/lib/libpangocairo-1.0.so.0 (0xb7649000)
        libpango-1.0.so.0 => /usr/lib/libpango-1.0.so.0 (0xb760b000)
        libcairo.so.2 => /usr/lib/libcairo.so.2 (0xb759b000)
        libgmodule-2.0.so.0 => /usr/lib/libgmodule-2.0.so.0 (0xb7598000)
        libgobject-2.0.so.0 => /usr/lib/libgobject-2.0.so.0 (0xb755d000)
        libglib-2.0.so.0 => /usr/lib/libglib-2.0.so.0 (0xb74c8000)
        libnm_glib.so.0 => /usr/lib/libnm_glib.so.0 (0xb74c3000)
        libgtkhtml-3.14.so.19 => /usr/lib/libgtkhtml-3.14.so.19 (0xb7420000)
        libecal-1.2.so.7 => /usr/lib/libecal-1.2.so.7 (0xb737d000)
        libdbus-glib-1.so.2 => /usr/lib/libdbus-glib-1.so.2 (0xb7362000)
        libdbus-1.so.3 => /usr/lib/libdbus-1.so.3 (0xb732f000)
        libcamel-provider-1.2.so.10 => /usr/lib/libcamel-provider-1.2.so.10 (0xb72df000)
        libcamel-1.2.so.10 => /usr/lib/libcamel-1.2.so.10 (0xb7294000)
        libSM.so.6 => /usr/lib/libSM.so.6 (0xb728b000)
        libICE.so.6 => /usr/lib/libICE.so.6 (0xb7273000)
        libgnomeprintui-2-2.so.0 => /usr/lib/libgnomeprintui-2-2.so.0 (0xb7232000)
        libgnomeprint-2-2.so.0 => /usr/lib/libgnomeprint-2-2.so.0 (0xb71ca000)
        libedataserverui-1.2.so.8 => /usr/lib/libedataserverui-1.2.so.8 (0xb71a3000)
        libebook-1.2.so.9 => /usr/lib/libebook-1.2.so.9 (0xb7170000)
        libedataserver-1.2.so.9 => /usr/lib/libedataserver-1.2.so.9 (0xb714c000)
        libplds4.so => /usr/lib/libplds4.so (0xb7149000)
        libplc4.so => /usr/lib/libplc4.so (0xb7143000)
        libnspr4.so => /usr/lib/libnspr4.so (0xb7111000)
        libc.so.6 => /lib/tls/i686/cmov/libc.so.6 (0xb6fd0000)
        libpthread.so.0 => /lib/tls/i686/cmov/libpthread.so.0 (0xb6fb9000)
        librt.so.1 => /lib/tls/i686/cmov/librt.so.1 (0xb6fb0000)
        libXext.so.6 => /usr/lib/libXext.so.6 (0xb6fa2000)
        libXinerama.so.1 => /usr/lib/libXinerama.so.1 (0xb6f9e000)
        libXi.so.6 => /usr/lib/libXi.so.6 (0xb6f96000)
        libXrandr.so.2 => /usr/lib/libXrandr.so.2 (0xb6f90000)
        libXcursor.so.1 => /usr/lib/libXcursor.so.1 (0xb6f87000)
        libXfixes.so.3 => /usr/lib/libXfixes.so.3 (0xb6f82000)
        libz.so.1 => /usr/lib/libz.so.1 (0xb6f6e000)
        libfontconfig.so.1 => /usr/lib/libfontconfig.so.1 (0xb6f42000)
        libpng12.so.0 => /usr/lib/libpng12.so.0 (0xb6f1f000)
        libXrender.so.1 => /usr/lib/libXrender.so.1 (0xb6f17000)
        libX11.so.6 => /usr/lib/libX11.so.6 (0xb6e26000)
        libm.so.6 => /lib/tls/i686/cmov/libm.so.6 (0xb6dff000)
        libdl.so.2 => /lib/tls/i686/cmov/libdl.so.2 (0xb6dfb000)
        libhal.so.1 => /usr/lib/libhal.so.1 (0xb6df0000)
        libnotify.so.1 => /usr/lib/libnotify.so.1 (0xb6de9000)
        libetable.so.0 => /usr/lib/evolution/2.10/libetable.so.0 (0xb6d77000)
        libetext.so.0 => /usr/lib/evolution/2.10/libetext.so.0 (0xb6d5c000)
        libevolution-widgets-a11y.so.0 => /usr/lib/evolution/2.10/libevolution-widgets-a11y.so.0 (0xb6d52000)
        libevolution-a11y.so.0 => /usr/lib/evolution/2.10/libevolution-a11y.so.0 (0xb6d3e000)
        libjpeg.so.62 => /usr/lib/libjpeg.so.62 (0xb6d1f000)
        libgnutls.so.13 => /usr/lib/libgnutls.so.13 (0xb6cae000)
        libavahi-glib.so.1 => /usr/lib/libavahi-glib.so.1 (0xb6cab000)
        libavahi-common.so.3 => /usr/lib/libavahi-common.so.3 (0xb6ca0000)
        libavahi-client.so.3 => /usr/lib/libavahi-client.so.3 (0xb6c91000)
        libresolv.so.2 => /lib/tls/i686/cmov/libresolv.so.2 (0xb6c7e000)
        libselinux.so.1 => /lib/libselinux.so.1 (0xb6c67000)
        libutil.so.1 => /lib/tls/i686/cmov/libutil.so.1 (0xb6c63000)
        libesd.so.0 => /usr/lib/libesd.so.0 (0xb6c59000)
        libaudiofile.so.0 => /usr/lib/libaudiofile.so.0 (0xb6c37000)
        libfreetype.so.6 => /usr/lib/libfreetype.so.6 (0xb6bcc000)
        libORBitCosNaming-2.so.0 => /usr/lib/libORBitCosNaming-2.so.0 (0xb6bc6000)
        libgailutil.so.18 => /usr/lib/libgailutil.so.18 (0xb6bbf000)
        libnsl.so.1 => /lib/tls/i686/cmov/libnsl.so.1 (0xb6ba8000)
        libnss3.so => /usr/lib/libnss3.so (0xb6b35000)
        libsmime3.so => /usr/lib/libsmime3.so (0xb6b11000)
        libssl3.so => /usr/lib/libssl3.so (0xb6ae7000)
        libsoftokn3.so => /usr/lib/libsoftokn3.so (0xb6a98000)
        libkrb5.so.3 => /usr/lib/libkrb5.so.3 (0xb6a1b000)
        libk5crypto.so.3 => /usr/lib/libk5crypto.so.3 (0xb69f6000)
        libcom_err.so.2 => /lib/libcom_err.so.2 (0xb69f2000)
        libgssapi_krb5.so.2 => /usr/lib/libgssapi_krb5.so.2 (0xb69d6000)
        libdb-4.4.so => /usr/lib/libdb-4.4.so (0xb68d8000)
        /lib/ld-linux.so.2 (0xb7f2c000)
        libXau.so.6 => /usr/lib/libXau.so.6 (0xb68d4000)
        libexpat.so.1 => /usr/lib/libexpat.so.1 (0xb68b4000)
        libXdmcp.so.6 => /usr/lib/libXdmcp.so.6 (0xb68af000)
        libtasn1.so.3 => /usr/lib/libtasn1.so.3 (0xb6899000)
        libgcrypt.so.11 => /usr/lib/libgcrypt.so.11 (0xb6848000)
        libgpg-error.so.0 => /usr/lib/libgpg-error.so.0 (0xb6844000)
        libsepol.so.1 => /lib/libsepol.so.1 (0xb6803000)
        libasound.so.2 => /usr/lib/libasound.so.2 (0xb673e000)
        libkrb5support.so.0 => /usr/lib/libkrb5support.so.0 (0xb6739000)


 
bon c'est un peu violent OK [:pingouino]  
 


---------------
uptime is for lousy system administrators what Viagra is for impotent people - mes unixeries - github me
n°911087
nicephore1​7
Un cinglé parmis les fous
Posté le 09-05-2007 à 17:14:32  profilanswer
 

Heu, Black_Lord, je dois prendre ça comme une explication?


---------------
Mac Pro powered (sorry)
n°911102
ccp6128
Syntax error
Posté le 09-05-2007 à 17:54:30  profilanswer
 

Sisi c'en est une :o
 
En compilation statique, l'exécutable généré contient toutes les librairies externes auxquelles il peut faire appel, ce qui gonfle sa taille par rapport au même exécutable compilé dynamiquement. Ce dernier sera plus petit mais se viandera si il y a un souci avec lesdites librairies (absentes, version trop ancienne, ...)

n°911110
nicephore1​7
Un cinglé parmis les fous
Posté le 09-05-2007 à 18:06:53  profilanswer
 

Oui, je le sais ça... c'est juste que COMMENT FAIT ON? J'ai les sources, j'ai l'environnement, j'ai plein de choses mais je ne sais pas comment tranformer mes sources en binaire statique... HELP  :cry:


---------------
Mac Pro powered (sorry)
n°911128
matafan
Posté le 09-05-2007 à 19:48:09  profilanswer
 

Je ne vois pas en quoi le fait d'avoir des binaires linkés dynamiquement est un problème pour un rescue CD. Si tu boot sur ton CD, le CD contient les binaires et leurs libraries, et les binaires du CD utilisent les lib du CD... Ca change quoi d'avoir des binaires linkés statiquement ?

n°911129
matafan
Posté le 09-05-2007 à 19:51:02  profilanswer
 

Sinon pour ta question, je pense qu'il suffit de donner au script configure le rep sous lequel tu veux faire l'install. Le make install ne touchera rien en dehors de ce rep. Par exemple si tu fais ./configure --prefix=/rescue_cd, le make install installera le soft sous /rescue_cd/bin, /rescue_cd/lib, /rescue_cd/etc...

n°911131
black_lord
Modérateur
Truth speaks from peacefulness
Posté le 09-05-2007 à 19:56:35  profilanswer
 

nicephore17 a écrit :

Heu, Black_Lord, je dois prendre ça comme une explication?


c'est pour dr freuderick l'explication [:dawa] perso je compile rarement (jamais même) en statique


---------------
uptime is for lousy system administrators what Viagra is for impotent people - mes unixeries - github me
n°911174
nicephore1​7
Un cinglé parmis les fous
Posté le 09-05-2007 à 23:56:54  profilanswer
 

matafan a écrit :

Je ne vois pas en quoi le fait d'avoir des binaires linkés dynamiquement est un problème pour un rescue CD. Si tu boot sur ton CD, le CD contient les binaires et leurs libraries, et les binaires du CD utilisent les lib du CD... Ca change quoi d'avoir des binaires linkés statiquement ?


 
Disons que j'ai procédé intelligement, j'ai demandé son avis au mainteneur du CD et il me conseille de le faire en binaire statique. Reste à savoir comment.
 
Je sais bien que vous êtes tous de Alpha Geek comme moi mais là la question n'est pas de la raison mais de la méthode  :( (moi aussi le statique c'est pas mon truc et c'est bien pour ça que je ne sais pas faire).


Message édité par nicephore17 le 09-05-2007 à 23:58:03

---------------
Mac Pro powered (sorry)
mood
Publicité
Posté le 09-05-2007 à 23:56:54  profilanswer
 

n°911222
franceso
Posté le 10-05-2007 à 09:12:05  profilanswer
 

T'as essayé de faire comme matafan t'a dit ?
 

matafan a écrit :

Sinon pour ta question, je pense qu'il suffit de donner au script configure le rep sous lequel tu veux faire l'install. Le make install ne touchera rien en dehors de ce rep. Par exemple si tu fais ./configure --prefix=/rescue_cd, le make install installera le soft sous /rescue_cd/bin, /rescue_cd/lib, /rescue_cd/etc...


 


---------------
TriScale innov
n°911224
nicephore1​7
Un cinglé parmis les fous
Posté le 10-05-2007 à 09:17:10  profilanswer
 

Ouaip c'est pas mal le truc de matafan, merci.
 
Par contre j'ai un autre souci, il le compile en i486 alors que je le préférerais en i386, vous savez comment faire?
 
(PS: j'avais pas vu le post de matafan)


---------------
Mac Pro powered (sorry)
n°911297
Xavier_OM
Pas de slips radioactifs !
Posté le 10-05-2007 à 14:12:39  profilanswer
 

nicephore17 a écrit :

Ouaip c'est pas mal le truc de matafan, merci.
 
Par contre j'ai un autre souci, il le compile en i486 alors que je le préférerais en i386, vous savez comment faire?
 
(PS: j'avais pas vu le post de matafan)


 
 
http://www.gnu.org/software/autoco [...] oconf.html     15.6 je pense :o


---------------
https://www.baba-patrimoine.fr/  pour tout comprendre sur l'art et le patrimoine

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Linux et OS Alternatifs
  Codes et scripts

  [Debian] Compiler en binaire statique + changer l'archi

 

Sujets relatifs
pblm install Debian Etch sur proliant ML150Nouveau Slug ( NSLU2 ) sous Debian, thread a conseils :)
[DEBIAN] Wifi avec zd1211rwCanon Pixma MP160 et Debian
debian et touchpad[resolu] [debian] imap, connection au serveur
8 images ISO pour Debian !Installation OpenVPN sur Debian
Debian : Limitation d'accés au ftp avec netfilter ou xinetdProblème pour Installer php4 sous Debian
Plus de sujets relatifs à : [Debian] Compiler en binaire statique + changer l'archi


Copyright © 1997-2018 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR