在 SSH 中运行 SDL 代码

在 SSH 中运行 SDL 代码

我的 Linux PC 上有一个使用 SDL 的 C 程序,当我尝试使用 ssh 从 Windows PC 启动该程序时,出现错误:no protocol specifiedno available device。我尝试使用-X或启动 SSH export DISPLAY=0,但它不起作用。我应该怎么办 ?

当我尝试使用 root 时:error: XDG_RUNTIME_DIR not set in the environement

谢谢

答案1

ssh用于执行远程 shell,因此它通常用于面向文本的命令(与图形应用程序相反,如 SDL 命令)。所以不要指望图形应用程序能够通过 ssh 远程运行。

幸运的是,ssh它是一个强大的工具:由于网络友好的 X 协议,提供了一种通过选项(X11 转发)ssh将远程 X 应用程序连接到本地 X 服务器的方法。-X

:10它的基本作用是通过侦听 TCP 端口 6010(端口 6000+n 对应于 X11 显示 n)并将所有内容转发到本地端口(对应于您当前的端口),在远程计算机上打开一个虚拟显示器(比方说)。 X11 显示(通常:0,侦听端口 6000)。

如果你没听错的话,为了让一切正常工作,你不仅需要使用ssh -X您必须在本地使用 X11 服务器

Windows 不附带 X11 服务器,因此您必须下载并安装一个。抱歉,我很幸运没有使用Windows,所以我没有什么可以推荐的。 FWIW,在互联网上,有些人提到“Cygwin/X”(或 xwin?),其他人“VcXsrv”。

一旦您拥有在 Windows 下运行的 X11 服务器,重要的是ssh使用该 X11 服务器。也许最简单的方法是从本地 X 服务器运行 X11 终端,然后从该终端执行ssh -X.也许export DISPLAY=:0在执行之前ssh -X就足够了。老实说,我不知道,我也无法为您提供进一步的帮助。

相关内容