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

  FORUM HardWare.fr
  Programmation
  C

  programme non open source sous linux

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

programme non open source sous linux

n°2213292
nicobzz
Posté le 11-12-2013 à 18:01:39  profilanswer
 

bonjour,  
 
Je souhaites créer d'ici quelques temps un programme NON open source.
Je souhaitais le faire disponible pour linux, mais je ne sais pas si c'est possible?
 
En effet chaque distribution linux a l'air de compiler différemment le code source fourni, et donc si je fourni un exécutable, il ne va pas fonctionner sur toutes les distributions linux je suppose?
 
merci pour votre réponse
 
Nicolas

mood
Publicité
Posté le 11-12-2013 à 18:01:39  profilanswer
 

n°2213316
czh
Posté le 11-12-2013 à 23:04:33  profilanswer
 

Ca fait longtemps que je n'ai pas compilé d'exécutable sur Linux, mais je crois que ça dépend surtout des dépendances et l'architecture du système. Il me semble que les exécutables x86 compilés en C fonctionnent sur tous les Linux x86 si les dépendances sont bien résolues. Par-contre il ne faudra pas espérer faire fonctionner un exécutable AMD64 sur du x86, ou un exécutable x86 sur du powerPC.
 
Généralement lorsque qu'un utilitaire est dispo sur Linux, Les versions précompilés sont téléchargeables sont : soit sous forme d'archive .tar.gz qui contient un exécutable x86, soit sous forme de package *.deb, *.rpm etc. spécifique à une distribution.

n°2213322
nicobzz
Posté le 12-12-2013 à 00:29:04  profilanswer
 

Merci beaucoup pour ton message!
 
ça va m'aider.
 
par contre est ce que si je le compile pour une certaine version du kernel linux, ou des librairies linux, l'utilisateur devra avoir les même versions?
 
(ça fait longtemps que j'ai pas mis le nez là dedans et je ne comprenais pas très bien ces histoires de versions)

n°2213366
czh
Posté le 12-12-2013 à 11:02:11  profilanswer
 

Pour connaître les dépendances d'un exécutable il y a la commande ldd :
Par exemple un "ldd /bin/echo" sur mon système donne :

Code :
  1. $ ldd /bin/echo
  2. linux-gate.so.1 =>  (0xb7761000)
  3. libc.so.6 => /lib/i386-linux-gnu/libc.so.6 (0xb759f000)
  4. /lib/ld-linux.so.2 (0xb7762000)


 
Lors de l'exécution du programme, le système va chercher des fichiers nommés "linux-gate.so.1", "libc.so.6" et "ld-linux.so.2" dans les entrepôts de dépendances configurés sur le système.
 
Si je fais "ls -lh /lib/i386-linux-gnu/libc*", j'ai ça :

Code :
  1. -rwxr-xr-x 1 root root 1,7M sept. 30 16:38 /lib/i386-linux-gnu/libc-2.15.so
  2. ...
  3. lrwxrwxrwx 1 root root   12 sept. 30 16:38 /lib/i386-linux-gnu/libc.so.6 -> libc-2.15.so


 
"libc.so.6" est un lien symbolique vers "/lib/i386-linux-gnu/libc-2.15.so"
Si une lib d'une certaine version mineure ou majeure peut se substituer à la version "standard du système", le lien symbolique doit exister. Sinon il est possible de créer un lien symbolique à l'emplacement de l'exécutable utilisateur, faire pointer ce lien vers une lib et modifier/créer LD_CONFIG_PATH pour que le système utilise le lien symbolique. Après il faut tester le programme pour voir si la lib est compatible et qu'il n 'y a pas de problèmes.


Message édité par czh le 12-12-2013 à 11:02:46
n°2213667
nicobzz
Posté le 14-12-2013 à 19:37:36  profilanswer
 

merci!


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C

  programme non open source sous linux

 

Sujets relatifs
Besoin d'aide pour creer un programmeStopper le programme
[JAVA] aide compilation d'un programme[Java] Page HTML de mon programme
programme en cProblème d'encodage sur Gnu/Linux
besoin d'aide pour completer un programmeQuel(s) langage(s) pour un programme simple.
[Divers][Réseaux]programme Hello, world ! sur internet.[Java] Aide pour un programme
Plus de sujets relatifs à : programme non open source sous linux


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