【发布时间】:2014-09-14 10:16:01
【问题描述】:
我制作了一个简单的 ncurses 程序,但它需要在终端中运行才能显示任何内容。 如果有人只是在 X11 的文件管理器窗口中双击它,程序将不会产生任何输出。 所以我的问题是,我怎样才能做到这一点,如果有人双击二进制文件,它会自动创建一个终端窗口来在其中运行? (而不是那个人必须打开终端并输入命令来导航并执行它..)
【问题讨论】:
-
我相信你可以找到一个系统命令来做到这一点。如果没有,将会有一个特定于桌面的命令(就像一种特殊的 gnome 方式来发现默认终端)。如果没有(不太可能),仍然可以尝试在 /bin 中找到最流行的终端二进制文件,例如 /bin/xterm 或 /bin/gnome-terminal ... 只需
forkexecve即可使用您的实际 ncurses 程序作为命令行参数。不 ?实际上,windows 上有一个系统命令可以启动默认控制台,这就是为什么我认为 linux 上也可以有一个。 -
如果你有一个文件管理器,它的上下文菜单中可能有一个“创建一个新的应用程序链接”命令。它可能被称为“快捷方式”或“桌面标签”或其他类似的东西。这些术语都指的是同一件事。在创建对话框中通常有几个选项卡或“向导步骤”,其中一个应该有一个“在终端中运行”检查按钮。这样的按钮也可能隐藏在“高级选项”对话框后面。勾选它,填写其余信息,您就可以开始了。
-
但我根本不相信这是他问题的本质。你是怎么分配的?每个使用他的东西的人都必须自己手动执行这些步骤,这听起来不太适合安装程序。
-
@v.oddou
how do you distribute that?你分发它完全就像你的操作系统分发vi一样。 -
@v.oddou 如果您坚持分发启动器,您可以。格式是标准化的。见standards.freedesktop.org/desktop-entry-spec/…