制作Ubuntu可执行文件

sfa*_*tor 8 c linux executable gcc ubuntu-9.10

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

Che*_*evy 9

基础

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

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

让我们假设您有foo.bin要部署的文件.根据Filesystem Hierarchy Standard,一个放置它的好地方(如果你没有使用包管理器)是/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
Run Code Online (Sandbox Code Playgroud)

并把它放进去/usr/share/applications/.

您可以使用菜单编辑器创建此类文件.在下面查找生成的桌面文件~/.local/share/applications/.

这应该可以解决问题.


另一个惯例是将所有内容置于其下/opt/foo/并创建符号链接/usr/local/.

与波特兰交叉DE

Portland项目提供了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.


dan*_*uer 5

陈的链接获取桌面图标和菜单条目; 对于Ubuntu而言(实际上是任何Debian派生的系统,大多数情况下),都有很多很好的文档.它可以从以下链接开始:https://wiki.ubuntu.com/Packaging?highlightlight =%28CategoryPackaging%24%29

从"PackagingGuide"开始阅读.:)

至于在X下的终端上运行您的应用程序 - 在Ubuntu上 - 只需运行即可

x-terminal-emulator -e /path/to/your/command
Run Code Online (Sandbox Code Playgroud)

x-terminal-emulator命令由"update-alternatives"管理,并且是系统上首选xterm仿真器的符号链接.对于Kubuntu系统,它通常是kterm,对于常规的Ubuntu系统,它可能是gnome-terminal等.但是如果安装了X,你可以指望x-terminal-emulator可用.并且该-e选项适用于所有这些选项,因为它是一个xterm命令,它们都是为兼容性而实现的.