我使用gcc编译器做了一个C语言的程序。现在它还没有GUI组件。我正在用makefile编译它,并在终端运行它。我需要部署它,使其可执行文件是独立的。我想让可执行文件有一个图标,当点击时在终端中启动程序。谁能告诉我如何做到这一点?
The basics
(免责声明:以下内容是在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/
下寻找生成的桌面文件。
This should do the trick.
另一个惯例是把所有东西都放在/opt/foo/
下,并创建符号链接到/usr/local/
。
Cross DE with Portland
The 波特兰项目提供了xdg-*
的命令行工具,使其能够以独立于DE(GNOME、KDE等)的方式,轻松安装应用程序的图标/菜单项/资源文件。
See the KDE & GNOME cross-desktop development tutorial on linuxuser.co.uk.
A better way
对于部署,你应该考虑创建一个*.deb
包。(包括你的可执行文件、*.desktop
文件和图标)。在这个问题上有几个教程,例如http://www.linuxfordevices.com/c/a/Linux-For-Devices-Articles/How-to-make-deb-packages/.
注意,如果你使用的是软件包管理器,文件位置的约定就变成了/usr/
而不是/usr/local/
。
Go all the way
下一步,如果你愿意的话,就是建立你自己的存储库,或PPA.
sfactor
:
感谢这个链接,我将来会做整个-deb包,但对于我的紧急需求,我只想让它在终端中通过点击图标打开可执行文件,我的代码中没有GUI组件。
@sfactor,在
foo.desktop
文件中包含的 "Terminal=1 "选项陈应该导致程序在终端打开。
dannysauer
发布于
2010-04-22
0
人赞同
陈的链接得到了桌面图标和菜单条目;具体到Ubuntu(实际上是任何Debian衍生的系统,在大多数情况下),有一大堆好的文档。 它可以从这个链接开始。
https://wiki.ubuntu.com/Packaging?highlight=%28CategoryPackaging%24%29
从 "包装指南 "开始阅读 :)
至于在X下的终端中运行你的应用程序--在Ubuntu上--只要运行