Рейтинг:0

Как создать .desktop для программы C?

флаг kr

Итак, я пытаюсь запустить программу терминала C, просто дважды щелкнув ее. Я пытаюсь сделать это через файл .desktop

  • Файл рабочего стола имеет разрешение на выполнение как файл, и он находится на моем рабочем столе.
  • Программа называется teste, дождитесь ввода пользователя, и она находится в папке /home/vithor/.
  • Я использую PopOs (это дистрибутив Ubuntu);
  • Я уже разрешил запуск исполняемого файла в конфигах nautilus;
[Вход на рабочий стол]
Версия=1.0
Имя=ИмяПрограммы
Комментарий=Это мой комментарий
Exec=/home/vitor/teste
Icon=/home/vitor/Pictures/Icons/books.png
Терминал=истина
Тип = Приложение
Категории=Полезность;
~                    

Но не работает, что я делаю не так? Или какая альтернатива у меня есть, чтобы запустить программу C, просто щелкнув ее?

флаг us
Удалить ; после полезности. Также здесь не поддерживается Pop OS.
флаг us
*Но это не работает* -- Каково текущее поведение? В файле на рабочем столе отображается значок?
Рейтинг:1
флаг us

Я предполагаю, что название программы тесте, и он находится в вашей домашней папке.

  1. Удалять #!/usr/bin/env bash с первой строки. Первая строка должна быть [Вход на рабочий стол]

  2. Изменить Исполнитель вход в

    Exec=/home/vitor/teste
    
  3. Измените последнюю строку на Категории=Полезность

  4. Отметьте файл .desktop как исполняемый с помощью команды chmod +x /путь/к/file.desktop.

Теперь он должен работать, когда вы дважды щелкаете по нему.

Однако, если программа C должна печатать в терминале и ничего больше не делать, тогда она напечатает результаты и быстро закроет терминал, и вы ничего не увидите. В таком случае измените источник так, чтобы он ждал ввода какого-либо символа перед закрытием.

Пример кода:

#include <stdio.h>

пустая функция(){
// здесь ваш код

в а;
printf("введите любой символ для завершения: ");
сканф("%д",&а);
}

Теперь скомпилируйте код с

gcc путь/к/source.c -o teste
WinEunuuchs2Unix avatar
флаг in
Хороший пример программы на C. Однако разве не должна быть где-нибудь команда `gcc`, `make` или `lint`?
флаг us
@WinEunuuchs2Unix Конечно, для компиляции нужен gcc. Я предполагаю, что OP знает, как компилировать, поскольку вопрос заключается в том, как выполнить двоичный файл «teste» с файлом .desktop.
WinEunuuchs2Unix avatar
флаг in
Без сомнения, OP, и вы знаете `gcc`. Некоторые из нас не все :)
флаг us
@wineunuuchs2unix О, хорошо, я обновлю ответ.
Vithor avatar
флаг kr
Спасибо за помощь! Но я попробовал, и это не сработало :(. Я отредактирую вопрос и добавлю больше информации!
Рейтинг:0
флаг nl

Используйте этот файл .desktop:

[Вход на рабочий стол]
Версия=1.0
Имя=ИмяПрограммы
Комментарий=Это мой комментарий
Exec=x-terminal-emulator -e /bin/bash -c '/home/vithor/teste ; эхо ""; echo "Нажмите Enter, чтобы закрыть..." ; читать'
Icon=/home/vitor/Pictures/Icons/books.png
Терминал=истина
Тип = Приложение
Категории=Полезность;

Он открывает терминал, запускает вашу программу и после завершения вашей программы ждет, пока вы не нажмете Enter, чтобы закрыть ее.

Кстати, я проверил это, и это действительно работает.

Если это работает для вас, нажмите значок «Отметить» слева от этого ответа, чтобы принять этот ответ.

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.