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 17/11/2018, à 18:28

Zazoux60

shared object

Bonsoir à tous,

je suis un utilisateur de Purebasic sous  Linux (Ubuntu).Avec ca, on peut créer un executable, qui dans mon cas est un .so (shared object).
Quand je suis sur l'ordinateur d'origine (ou est installé PureBasic), je crée un executable , je change les permissions avec:
chmod +x mon_so_a_executer
et je demande l'execution avec:
./mon_so_a_executer , ca marche trés bien, il tourne, et j'obtient les resultats qu'il faut.
Ensuite, je met le fichier mon_so_a_executer sur une clé usb, et je passe sur un deuxième ordinateur, toujours sous linux, avec la même distribution (UBUNTU 16.04. LTS).
Je copie le fichier a executer dans un dossier, je change le propriètaire avec chown, le lit les permissions avec ls -l, et je verifie les permissions et je les modifie avec chmod si c'est necessaire.
J'essaie d'executer le fichier et, surprise, je recoit le message qui me dit que Ubuntu ne peut pas executer mon_so_a_executer.

Vous avez une explication possible, une idée, une suggestion ?
Je vous remercie en avance pour tout retour.

cordialement

Hors ligne

#2 Le 17/11/2018, à 18:57

Nuliel

Re : shared object

Bonjour,

http://perso.ens-lyon.fr/frederic.vivien/Enseignement/PPP-2001-2002/LibDyn.pdf a écrit :

’avantage des librairies statiques est que le fichier exécutable qui en résulte contient, avant l’exécution, tout ce qui lui est
nécessaire pour fonctionner. Alors que, si une librairie dynamique a disparu, ou a été considérablement modifiée, un programme
exécutable qui s’exécutait parfaitement en utilisant cette librairie peut devenir totalement inopérant.
Par contre, un programme obtenu par compilation avec une librairie statique a un fichier exécutable beaucoup plus volumineux
que le même programme obtenu par compilation avec une librairie dynamique, puisque la définition des fonctions de la librairie ne
se trouve pas dans le fichier exécutable.
Enfin, si une librairie statique est mise à jour alors, tout programme l’utilisant devra être recompilé pour qu’il puisse prendre
en compte la modification. Dans le cas d’une librairie dynamique, cette mise à jour n’a pas besoin de recompilation.

En gros, fais plutôt des librairies statiques que dynamiques (les .so), ou alors il faut installé tout ce qui est en lien avec la librairie dynamique sur le pc 2.

Hors ligne

#3 Le 17/11/2018, à 20:24

bruno

Re : shared object

Message hors-sujet. Supprimé.

Dernière modification par bruno (Le 17/11/2018, à 21:34)

Hors ligne

#4 Le 17/11/2018, à 20:27

Nuliel

Re : shared object

C'est quoi la différence? J'ai pas trouvé et je croyais que c'était la même chose (librairie étant une erreur de traduction)

Préférer bibliothèque à librairie, dédicace à bruno

Dernière modification par Nuliel (Le 17/11/2018, à 22:18)

Hors ligne

#5 Le 18/11/2018, à 10:56

Zazoux60

Re : shared object

merci a tous les deux pour ce coup de main.
cordialement

Hors ligne