programme non open source sous linux - C - Programmation
Marsh Posté le 11-12-2013 à 23:04:33
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.
Marsh Posté le 12-12-2013 à 00:29:04
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)
Marsh Posté le 12-12-2013 à 11:02:11
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 :
|
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 :
|
"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.
Marsh Posté le 11-12-2013 à 18:01:39
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