制作一个Ubuntu可执行文件

8 人关注

我使用gcc编译器做了一个C语言的程序。现在它还没有GUI组件。我正在用makefile编译它,并在终端运行它。我需要部署它,使其可执行文件是独立的。我想让可执行文件有一个图标,当点击时在终端中启动程序。谁能告诉我如何做到这一点?

c
linux
gcc
executable
ubuntu-9.10
sfactor
sfactor
发布于 2010-04-22
2 个回答
Chen Levy
Chen Levy
发布于 2010-04-22
已采纳
0 人赞同

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.

感谢这个链接,我将来会做整个-deb包,但对于我的紧急需求,我只想让它在终端中通过点击图标打开可执行文件,我的代码中没有GUI组件。
@sfactor,在 foo.desktop 文件中包含的 "Terminal=1 "选项陈应该导致程序在终端打开。
dannysauer
dannysauer
发布于 2010-04-22
0 人赞同

陈的链接得到了桌面图标和菜单条目;具体到Ubuntu(实际上是任何Debian衍生的系统,在大多数情况下),有一大堆好的文档。 它可以从这个链接开始。 https://wiki.ubuntu.com/Packaging?highlight=%28CategoryPackaging%24%29

从 "包装指南 "开始阅读 :)

至于在X下的终端中运行你的应用程序--在Ubuntu上--只要运行