制作Ubuntu可执行文件

时间:2010-04-22 13:31:14

标签: c linux gcc executable ubuntu-9.10

我使用gcc编译器在C中创建了一个程序。现在它没有GUI组件。我用makefile编译它并在终端中运行它。我需要部署它,以便可执行文件是独立的。我希望可执行文件有一个图标,单击时启动终端中的程序。谁能告诉我怎么做?

2 个答案:

答案 0 :(得分:9)

基础知识

(免责声明:以下是使用kubuntu进行测试的,您可能需要对系统进行一些调整)

实际上有一个标准可以做到这一点,不仅适用于Ubuntu,还适用于任何数量的* nix系统。咨询:http://www.freedesktop.org/wiki/Howto_desktop_files

假设您有要部署的foo.bin文件。根据{{​​3}},放置它的好地方(如果你没有使用包管理器)是/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

Filesystem Hierarchy Standard提供了xdg-*命令行实用程序,可以轻松地以DE(GNOME,KDE等)的方式安装应用程序的图标/菜单项/资源文件。

请参阅linuxuser.co.uk上的Portland project

更好的方法

对于部署,您应该考虑创建一个*.deb包。 (使用您的可执行文件,*.desktop文件和图标)。关于这个主题有几个教程,例如KDE & GNOME cross-desktop development tutorial

请注意,如果您使用的是包管理器,则文件位置约定将变为/usr/而不是/usr/local/

一路走

下一步,如果您愿意接受它,请设置您自己的存储库,或http://www.linuxfordevices.com/c/a/Linux-For-Devices-Articles/How-to-make-deb-packages/

答案 1 :(得分:5)

陈的链接获取桌面图标和菜单条目;对于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命令由“update-alternatives”管理,并且是系统上首选xterm模拟器的符号链接。对于Kubuntu系统,它通常是kterm,对于常规的Ubuntu系统,它可能是gnome-terminal等。但是如果安装了X,你可以指望x-terminal-emulator可用。 -e选项适用于所有这些选项,因为它是一个xterm命令,它们都是为兼容性而实现的。

相关问题