Comme certains l'ont remarqué, les exécutables que vous créez en compilant vos programmes et qui apparaissent p.ex. comme ceci dans le navigateur de fichiers :
ne se lancent pas lorsque l'on double-clic dessus.
Pour avoir une icône clicable qui lance votre programme, il faut créer un « fichier de description » pour que l'environnement graphique (qui gère vos clics de souris) sache comment lancer votre programme (qui doit se lancer dans un terminal). Un tel fichier se nomme « .desktop ».
Par exemple, créez le fichier « arrays.desktop » avec le contenu suivant :
[Desktop Entry]
Type=Application
Terminal=true
Name=arrays
Icon=utilities-terminal
Exec=bash -c "$(dirname %k)/arrays;$SHELL"
Categories=Application;
Vous verrez alors un nouveau fichier apparaître (son nom correspond à la ligne « Name » ci-dessus) :
![[nouvelle icône]](https://moodlearchive.epfl.ch/2019-2020/pluginfile.php/575901/mod_forum/post/50757/array_exe.png)
Si vous double-cliquez dessus, votre programme « arrays » (écrit dans la ligne « Exec » ci-dessus) se lancera dans un terminal.
Voilà, c'est tout simple !
Et on peut même faire mieux : maintenant que l'on sait écrire des Makefile, on peut ajouter une cible dans notre Makefile pour automatiquement créer ces fichiers « .desktop » à partir des fichiers « .cc » :
- commencez par créer un fichier « template.desktop » contenant ceci :
[Desktop Entry]
Type=Application
Terminal=true
Name=<TEMPLATE>
Icon=utilities-terminal
Exec=bash -c "$(dirname %k)/<TEMPLATE>;$SHELL"
Categories=Application; - puis ajoutez simplement ces trois lignes à votre Makefile :
%.desktop: %.cc sed "s/<TEMPLATE>/$$(basename $< .cc)/" template.desktop > $@ chmod +x $@
Il suffit maintenant de taper p.ex.
make mon_programme.desktop
pour que le « .desktop » voulu soit créé !
Vivent les Makefiles !!