Я сделал программу на C с помощью компилятора gcc. Прямо сейчас он не имеет компонентов графического интерфейса. Я компилирую его с помощью makefile и запускаю в терминале. Мне нужно развернуть его, чтобы исполняемый файл был автономным. Я хочу, чтобы исполняемый файл имел значок и при нажатии запускал программу в терминале. Кто-нибудь может сказать мне, как это сделать?
Создание исполняемого файла Ubuntu
Ответы (2)
Основы
(отказ от ответственности: следующее было протестировано с kubuntu, вам может потребоваться внести некоторые коррективы для вашей системы)
На самом деле для этого существует стандарт не только для Ubuntu, но и для любого количества систем *nix. Проконсультируйтесь: http://www.freedesktop.org/wiki/Howto_desktop_files:
Предположим, у вас есть файл foo.bin
, который вы хотите развернуть. Согласно Стандарту иерархии файловой системы, это хорошее место для его размещения (если вы не используете пакет менеджер) /usr/local/bin/
. Вам также понадобится значок, я предполагаю, что ваш художественный талант создал foo.png
, и подходящим местом для него может быть /usr/local/share/icons/
.
Теперь вам нужно создать foo.desktop
, который может выглядеть так:
[Desktop Entry]
Comment=My awesome fooish application
Exec=/usr/local/bin/foo.bin
Icon=/usr/local/share/icons/foo.png
Name=Foobar
NoDisplay=false
StartupNotify=false
Terminal=1
TerminalOptions=
Type=Application
и поместите его в /usr/share/applications/
.
Вы можете использовать редактор меню для создания такого файла. Найдите сгенерированный файл рабочего стола в разделе ~/.local/share/applications/
.
Это должно сработать.
Другое соглашение заключается в том, чтобы помещать все под /opt/foo/
и создавать символические ссылки на /usr/local/
.
Пересечь DE с Портлендом
проект Portland предоставляет xdg-*
утилит командной строки, упрощающих установку значка/меню приложения. запись / ресурсный файл независимым от DE (GNOME, KDE и т. д.) способом.
См. руководство по кросс-платформенной разработке KDE и GNOME на linuxuser.co.uk.
Лучший способ
Для развертывания вам следует подумать о создании пакета *.deb
. (с вашим исполняемым файлом, файлом *.desktop
и значком). На эту тему есть несколько руководств, например. http://www.linuxfordevices.com/c/a/Linux-For-Devices-Articles/How-to-make-deb-packages/.
Обратите внимание, что если вы используете менеджер пакетов, соглашение для расположения файла становится /usr/
вместо /usr/local/
.
Пройти весь путь
Следующий шаг, если вы склонны к этому, — настроить собственный репозиторий или PPA.
foo.desktop
, должна вызывать открытие программы в терминале.
- person Nick Meyer; 22.04.2010
Ссылка Чена получает значок на рабочем столе и пункт меню; специально для Ubuntu (и вообще для любой системы, производной от Debian, по большей части) есть много хорошей документации. Он доступен по этой ссылке: https://wiki.ubuntu.com/Packaging?highlight=%28CategoryPackaging%24%29
Начните читать с "PackagingGuide". :)
Что касается запуска вашего приложения в терминале под X - на Ubuntu - просто запустите
x-terminal-emulator -e /path/to/your/command
Команда x-terminal-emulator
управляется «альтернативами обновления» и будет символической ссылкой на любой предпочитаемый эмулятор xterm в системе. Для системы Kubuntu это обычно будет kterm, для обычной системы Ubuntu это, вероятно, будет gnome-terminal и т. д. Но вы можете рассчитывать на доступность x-terminal-emulator, если X установлен. И опция -e
работает для всех из них, потому что это команда xterm, которую все они реализуют для совместимости.