web-dev-qa-db-fra.com

Ubuntu ne pense pas que ce fichier est exécutable

J'ai un ancien programme C (2003) d'environ 1600 SLOC écrit non par moi. Je le compile avec gcc sans drapeaux.

Le problème est que le programme Files affiche l’icône d’un fichier texte au lieu d’un fichier exécutable et Ubuntu ne pense pas qu’il s’agisse d’un exécutable. J'ai essayé chmod +x, chmod 777 et l'onglet des autorisations des propriétés du fichier dans Files (qui utilise probablement chmod de toute façon) mais rien n'a changé.

Lorsque je double-clique sur le fichier, je reçois le message "Aucune application n'est installée pour les fichiers" bibliothèque partagée "".

Je peux l'exécuter à partir de la console avec ./ et cela fonctionne correctement.

En outre, en réalité, je ne veux pas exécuter ce programme, mais le donner à une autre application qui utiliserait ce programme. Je ne peux pas le faire car cette application utilise la fenêtre "Sélectionner un fichier" standard d'Ubuntu (comme il semble) et que le format de fichier est défini sur "Fichiers exécutables", je ne peux donc pas voir mon programme.

Je crois que si je pouvais le voir, les deux programmes fonctionneraient correctement ensemble.

4
Qumeric

La manière dont Nautilus traite les fichiers exécutables a été modifiée par défaut. Auparavant, il vous demandait quoi faire lorsque vous double-cliquez sur un. Maintenant, il essaie d'ouvrir le fichier en utilisant une application.

La boîte de dialogue dans laquelle vous avez la possibilité d’exécuter le fichier, ouvrez Nautilus, accédez à Edit → Preferences → Behavior et basculez Executable Text Files en Ask each time. C'était auparavant la valeur par défaut. Mais maintenant, c’est "Afficher les fichiers texte exécutables à l’ouverture", ce qui signifie que Nautilus recherche une application avec laquelle ouvrir le fichier lorsque vous double-cliquez dessus mais que vous ne pouvez pas en trouver un pour ce type de fichier.

Je ne recommande pas de le basculer sur Run executable text files when they are opened afin de ne pas exécuter accidentellement des fichiers.

5
UTF-8