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 05/06/2018, à 12:58

berdal84

Binaires compilés avec g++ non executables via un double clic

Bonjour,

Je suis passé d'Ubuntu 16.04 LTS à 18.04 LTS récemment. J'ai formaté mon disque principal, donc l'installation est bien propre.

J'ai un soucis pour exécuter les fichiers binaires compilés avec g++. Si je peux les exécuter via la ligne de commande ( ./nodable.bin ), il m'est plus possible de le faire en double cliquant sur l'icone du fichier, d'ailleurs l'icone n'est plus un losange mais une icone de type fichier texte).
Si je tente un double clic, le système me dit "Impossible d'afficher nodable.bin , le type du fichier est inconnu".

Voici ce que me retourne file :

berdal84@berdal84-Precision-WorkStation-690:~/Nodable/bin/linux64$ file nodable.bin
nodable.bin: ELF 64-bit LSB shared object, x86-64, version 1 (GNU/Linux), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, for GNU/Linux 3.2.0, BuildID[sha1]=d092cccf6afd7d07055dff7919a264582202f4a5, not stripped

EDIT: Voici ce que retourne mimetype:
berdal84@berdal84-Precision-WorkStation-690:~/Nodable/bin/linux64$ mimetype nodable.bin
nodable.bin: application/octet-stream

J'ai également compilé un autre programme pensant que peut être cela venait de mon makefile mais le résultat est le même la compilation produit un fichier non double clicable.

Avez vous une idée pour résoudre ce problème ?

Merci par avance.

Dernière modification par berdal84 (Le 05/06/2018, à 13:07)

Hors ligne

#2 Le 05/06/2018, à 13:48

J5012

Re : Binaires compilés avec g++ non executables via un double clic

clic droit sur fichier → puis onglet "permissions" → puis coche sur "exécution..."

l'extension point bin n'est pas necessaire pour l'execution ...

Hors ligne

#3 Le 05/06/2018, à 14:39

berdal84

Re : Binaires compilés avec g++ non executables via un double clic

Merci pour ta réponse J5012, mais tu n'as pas lu mon message avec attention.

L'autorisation d'exécution est déjà cochée puisque je peux exécuter le programme via un terminal. Cela est du au fait que le compilateur (g++) génère un fichier ayant le flag d'exécution activé.
L'extension bin n'est pas nécessaire d'accord, mais je ne vois pas en quoi est-ce un problème de l'avoir ajoutée ?

Ceci dit, depuis le post de ma question j'ai compris un peu plus ce qui se passe. Dans Ubuntu 18.04 (peut être même dans la 17.x aussi) le compilateur gcc active par défaut le flag -pie (pour Position Independent Executable). Ceci pour des raisons de sécurité.

Cela a pour effet de produire un exécutable que nautilus ne "peut" pas lancer. Je met ça entre guillemets car il semble que la communauté gnome ne qualifie pas cela comme un bug : https://bugzilla.gnome.org/show_bug.cgi?id=737849

Par conséquent, soit je désactive le flag pie (avec -no-pie) soit j'exécute mon programme en passant par la ligne de commande. Point de vue sécurité mieux vaut opter pour la seconde solution il me semble. Mais du coup je ne peux pas mettre mon programme en raccourci dans mon launcher...

EDIT: En créant un petit script shell exécutable, cela me permet de lancer mon binaire via un double clic. Contenu du script (nodable.sh)
./nodable.bin

Dernière modification par berdal84 (Le 05/06/2018, à 14:44)

Hors ligne

#4 Le 07/06/2018, à 23:44

J5012

Re : Binaires compilés avec g++ non executables via un double clic

script lanceur , ligne exec :

exec = /chemin-absolu/Nodable.bin

devrait fonctionner normalement ...

Dernière modification par J5012 (Le 07/06/2018, à 23:47)

Hors ligne

#5 Le 07/06/2018, à 23:51

Roschan

Re : Binaires compilés avec g++ non executables via un double clic

Plutôt que de vous compliquer la vie :

menu de l'application -> préférences -> comportement -> fichiers exécutables, et choisit l'option que tu préfères

Hors ligne