从 Linux Makefile 打开终端

Posted

技术标签:

【中文标题】从 Linux Makefile 打开终端【英文标题】:Opening a terminal from Linux Makefile 【发布时间】:2010-09-17 20:22:26 【问题描述】:

我们能否使用 makefile 或某个 c 文件从现有终端打开一个新的终端选项卡或窗口。

如果是怎么办?提前感谢您的回复。

附:我想这样做是因为首先在终端中我想运行服务器文件,然后我想打开新终端并为客户端运行文件。

我想从第二个终端继续运行脚本。

【问题讨论】:

GNU 屏幕? ((gnu.org/software/screen)和(en.wikipedia.org/wiki/GNU_Screen)) 为什么要这样做?并提醒我不要使用你的 makefile...拜托! 我将同意使用 screen... 或 tmux... 或可能使用 & 运行服务器 @jonatthon.. 我想从同一个终端服务器和客户端。并且不希望用户担心这一点。所以希望makefile做这个改变...... @abhishek:好的 - 对于您的情况,它有用途。分发生成文件以用于自动构建等不是一个好主意。 【参考方案1】:

您可以尝试运行xterm(最可用的终端窗口程序)并将程序作为shell参数运行。

xterm ./my_client &

为此,必须将 DISPLAY 环境变量设置为可用的值(如果您在本地运行 X windows 可能会设置 - 如果您是远程连接,那么它会更复杂)。

如果你想变得花哨,你可以尝试确定哪些其他终端窗口程序可用以及用户想要使用什么,但我知道其中一些有不同的方式来指定运行哪个“shell”。

【讨论】:

这给了我一个错误---->>>>> xterm Xt 错误:无法打开显示:xterm:未设置显示 我说必须设置显示。如果您不使用 X windows,您应该使用其他人提到的 screen 方法,但是由于您说打开另一个窗口,我假设您正在使用许多终端仿真器程序之一(xterm、gnome-terminal、konsole、.. .) 并从其中一个程序中启动另一个 X 程序通常像 DISPLAY 通常(正确)设置一样工作。 实际上,这在我的电脑上有效。但是我们应该在我们无法随意安装任何东西的实验室计算机上运行它。这段代码在那里出错。 @abhishekgupta92:您将不得不提供有关您的实验室设置的更多信息。尝试运行 DISPLAY=:0.0 xterm ./my_client & 。如果这不起作用,那么您可能正在使用远程连接(或不涉及 X)。如果您使用 ssh 连接到实验室计算机,则使用 ssh -X lab_computer_name 连接(即大写 X,将打开 X 转发),然后执行 xterm ./my_client &(不带 DISPLAY= )

以上是关于从 Linux Makefile 打开终端的主要内容,如果未能解决你的问题,请参考以下文章

Makefile引用与环境变量

Linux项目自动化构建工具make与makefile

浅谈linux--make和makefile

如何调试makefile

从命令行构建 Eclipse Makefile 项目

VSCode + make + makefile + c++ 断点调试