Linux

在 SSH 中執行 SDL 程式碼

  • February 16, 2021

我在我的 linux PC 上有一個使用 SDL 的 C 程序,當我嘗試使用 ssh 從我的 windows pc 啟動這個程序時,它給了我一個錯誤:no protocol specifiedno available device. 我嘗試使用-Xor啟動 SSH,export DISPLAY=0但它不起作用。我應該怎麼辦 ?

當我嘗試使用 root 時:error: XDG_RUNTIME_DIR not set in the environement

謝謝

ssh用於執行遠端 shell,因此它通常用於面向文本的命令(與圖形應用程序相反,如 SDL 應用程序)。所以不要指望圖形應用程序能夠通過 ssh 遠端執行。

幸運的是,ssh它是一個強大的工具:由於網路友好的 X 協議,ssh提供了一種通過-X選項(X11 轉發)將遠端 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就足夠了。TBH,我不知道,也無法進一步幫助您。

引用自:https://unix.stackexchange.com/questions/634630