制作一个Ubuntu可执行文件

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

基础

(免责声明:以下是使用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

波特兰项目提供了xdg-*命令行实用程序,使得以独立的DE(GNOME,KDE等)方式安装应用程序的图标/菜单项/资源文件变得简单。

请参阅linuxuser.co.uk上的KDE和GNOME跨平台开发教程 。

一个更好的方法

对于部署,你应该考虑创建一个*.deb包。 (用你的可执行文件, *.desktop文件和图标)。 这个主题有几个教程,例如http://www.linuxfordevices.com/c/a/Linux-For-Devices-Articles/How-to-make-deb-packages/

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

一路走

下一步,如果您倾向于采取,则设置您自己的存储库或PPA 。

陈的链接获取桌面图标和菜单条目; 对于特别是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命令,它们都是为了兼容性而实现的。