Puncte:0

Cum se creează un .desktop într-un program C?

drapel kr

Deci încerc să execut un program terminal C doar făcând dublu clic pe el. Încerc să fac asta printr-un fișier .desktop

  • Fișierul desktop are permisiunea de a se executa ca fișier și se află pe desktopul meu.
  • Programul se numește teste, așteptați intrarea utilizatorului și este în /home/vithor/
  • Folosesc PopOs (este o „distribuție ubuntu”);
  • Am permis deja executabilului să se lanseze în configurațiile nautilus;
[Intrare pe desktop]
Versiunea=1.0
Nume=Nume Program
Comentariu=Acesta este comentariul meu
Exec=/home/vithor/teste
Icon=/home/vithor/Pictures/Icons/books.png
Terminal=adevarat
Tip=Aplicație
Categorii=Utilitate;
~                    

Dar nu merge, cu ce greșesc? Sau ce alternativă am pentru a rula un program C doar făcând clic pe el?

drapel us
Scoateți ; după utilitate. De asemenea, Pop OS nu este acceptat aici.
drapel us
*Dar nu funcționează* -- Care este comportamentul actual? Fișierul de pe desktop arată pictograma?
Puncte:1
drapel us

Presupun că numele programului este teste, și se află în folderul dvs. de acasă.

  1. Elimina #!/usr/bin/env bash din prima linie. Prima linie ar trebui să fie [Intrare pe desktop]

  2. Schimba Exec intrarea la

    Exec=/home/vithor/teste
    
  3. Schimbați ultima linie în Categorii=Utilitate

  4. Marcați fișierul .desktop ca executabil cu comanda chmod +x /path/to/file.desktop.

Acum ar trebui să funcționeze când faceți dublu clic pe el.

Cu toate acestea, dacă programul C ar trebui să imprime în terminal și să nu facă nimic altceva, atunci ar tipări rezultatele și ar închide rapid terminalul și nu veți putea vedea nimic. Într-un astfel de caz, schimbați sursa astfel încât să aștepte să introduceți un caracter înainte de a închide.

Exemplu de cod:

#include <stdio.h>

void main(){
// codul dvs. aici

int a;
printf("introduceți orice caracter pentru a termina: ");
scanf("%d",&a);
}

Acum compilați codul cu

gcc path/to/source.c -o teste
WinEunuuchs2Unix avatar
drapel in
Un exemplu frumos de program C. Totuși, nu ar trebui să existe o comandă `gcc` sau `make` sau `lint` undeva?
drapel us
@WinEunuuchs2Unix Desigur, este nevoie de gcc pentru a compila acest lucru. Presupun că OP știe cum să compileze, deoarece întrebarea este despre cum să execute binarul `teste` cu un fișier .desktop.
WinEunuuchs2Unix avatar
drapel in
Fără îndoială OP și știi `gcc`. Unii dintre noi nu sunt toți :)
drapel us
@wineunuuchs2unix Ok, voi actualiza răspunsul.
Vithor avatar
drapel kr
Vă mulţumesc pentru ajutor! Dar am incercat, si nu a mers :(. Voi edita intrebarea si voi adauga mai multe informatii!
Puncte:0
drapel nl

Utilizați acest fișier .desktop:

[Intrare pe desktop]
Versiunea=1.0
Nume=Nume Program
Comentariu=Acesta este comentariul meu
Exec=x-terminal-emulator -e /bin/bash -c '/home/vithor/teste ; ecou "" ; echo "Apăsați Enter pentru a închide....." ; citit'
Icon=/home/vithor/Pictures/Icons/books.png
Terminal=adevarat
Tip=Aplicație
Categorii=Utilitate;

Deschide un terminal, rulează programul și după ce programul este terminat, așteaptă până când apăsați Enter pentru a-l închide.

BTW am testat asta și chiar funcționează.

Dacă acest lucru funcționează pentru dvs., vă rugăm să faceți clic pe pictograma Bifă din stânga acestui răspuns pentru a accepta acest răspuns.

Postează un răspuns

Majoritatea oamenilor nu înțeleg că a pune multe întrebări deblochează învățarea și îmbunătățește legătura interpersonală. În studiile lui Alison, de exemplu, deși oamenii își puteau aminti cu exactitate câte întrebări au fost puse în conversațiile lor, ei nu au intuit legătura dintre întrebări și apreciere. În patru studii, în care participanții au fost implicați în conversații ei înșiși sau au citit transcrieri ale conversațiilor altora, oamenii au avut tendința să nu realizeze că întrebarea ar influența – sau ar fi influențat – nivelul de prietenie dintre conversatori.