前言
因为 Windows 程序的的二进制文件为PE文件,Linux 程序的二进制文件为ELF文件,所以两者不能执行对方平台编译的程序;这就引发一个问题:

Windwos 上安装 VsCode 通过SSH远程虚拟机中的 Linux 进行调试只能在主机(Windows)端的终端中显示远程机(Linux)的控制台程序内容,不能运行远程机(Linux)的图形用户界面程序,也不能打开 Qt Designer 进行 Qt 界面设计。

解决方法有两个:

1. 在 Windows 上通过X11转发 Linux 上的图形用户界面,这样就能直接在 Windows 端运行 Linux 端的图形用户界面程序和打开 Linux 上安装的 Qt Designer。

2. 在 Linux 端启动图形用户界面,通过 Windows 端的 VsCode 附加到 Linux 端的图形界面进程进行调试。

这里着重介绍第一种方法的配置步骤:

1. Windows 端安装并启用 x11 服务器
    1.1 使用 XMing
    参考:G:\0_Code\笔记\开发工具\文档\XMing\XMing下载安装步骤.docx
    1.2 使用 Vcxsrv
    参考:G:\0_Code\笔记\开发工具\文档\Vcxsrv\下载安装启动Vcxsrv步骤.docx

    推荐使用 Vcxsrv,因为 XMing 启动 Qt Designer 会一闪而过。

2. 主机端(Windows) VsCode 安装插件:Remote X11;并通过插件扩展安装远程 VsCode Remote X11(SSH) 插件。

3. 在 VsCode 的SSH配置文件(.ssh/config)中添加以下内容:

    # 开启X11转发功能
    ForwardX11 yes
    # 将X11转发标记为“可信”,允许设置DISPLAY环境变量
    ForwardX11Trusted yes

4. 在主机(Windows) VsCode 中按"Ctrl + ," 打开设置,在搜索框中输入 remote.SSH.enableX11Forwarding,找到该选项并勾选。

5. 主机(Windows)启动 VsCode,通过SSH远程连接虚拟机(Linux)。确保连接成功且 Remote X11 和 Remote X11(SSH) 插件不报错误。
    说明:公司的电脑的私钥文件需要指定秘钥类型和位长度。
    操作:主机(Windows)打开 cmd,输入命令:ssh-keygen -t rsa -b 2048,按照提示,一路回车生成。

6. 测试 x11 转发是否启动成功
    启动 VsCode,通过SSH远程连接 Linux,按 "ctrl +`" 打开一个终端,输入命令:echo $DISPLAY,如果返回 localhost:10.0,说明已成功转发X11。

7. 这样就可以在 Windows 端的 XLaunch 窗口中运行 Linux 中的图形界面程序和启动 Qt Designer 了。

Logo

这里是“一人公司”的成长家园。我们提供从产品曝光、技术变现到法律财税的全栈内容,并连接云服务、办公空间等稀缺资源,助你专注创造,无忧运营。

更多推荐