在 SSH 中執行 SDL 程式碼
我在我的 linux PC 上有一個使用 SDL 的 C 程序,當我嘗試使用 ssh 從我的 windows pc 啟動這個程序時,它給了我一個錯誤:
no protocol specified
和no available device
. 我嘗試使用-X
or啟動 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,我不知道,也無法進一步幫助您。