作者:billy
版权声明:著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处
前言
在软件开发领域,跨平台开发是一项常见需求。特别是对于C++开发者来说,有时需要在 Windows 环境下编写代码,但却需要在 Linux 环境中编译和运行。这种情况在系统编程、嵌入式开发或高性能计算领域尤为常见。
首先明确目标:实现 VS Code 通过 SSH 连接 Linux 主机,使用 CMake 构建 Windows 编写的 C++ 代码,并在 Linux 生成可执行文件。
一、前提条件
- 本地 Windows 安装 VS Code,并且本地已有待编译的代码(C/C++ 项目,含 CMakeLists.txt);
- 可访问的 Linux 服务器(物理机或者虚拟机,本文以虚拟机为例);
- 确保 Windows 与 Linux 主机网络互通;
- Linux 主机上已安装 SSH 服务(一般默认安装,可通过
systemctl status sshd检查,未安装则执行apt install openssh-server); - Linux 主机上已安装 C++ 编译工具链:gcc/g++、cmakec、make(sudo apt update && sudo apt install -y g++ cmake make);
二、安装 VS Code 扩展
打开 VS Code,在左侧扩展栏(快捷键 Ctrl+Shift+X)搜索并安装以下扩展:
- Remote - SSH(必装):用于 SSH 连接远程 Linux 主机;
- C++(必装):提供语法高亮、调试、IntelliSense;
- CMake(必装):CMake 语法高亮和命令支持;
- CMake Tools 扩展(必装):一键构建、配置 CMake 工程(关键插件);
- C/C++ Extension Pack(可选):打包了 C++ 开发常用扩展,一键安装更便捷;
三、SSH 连接远程 Linux 主机
- 按 F1 打开 VS Code 命令面板(快捷键 Ctrl+Shift+P),输入并选择 Remote-SSH: Connect to Host...;
- 输入远程 Linux 的 SSH 连接信息,格式为:用户名@远程主机IP/域名 -p 端口号(端口默认 22 可省略),例如:user@192.168.10.21 或 user@192.168.10.21 -p 2222;
- 首次连接会提示选择 SSH 配置文件(默认选第一个即可),然后输入远程主机的密码(若配置了 SSH 密钥免密登录,可跳过密码输入);
- 连接成功后,VS Code 窗口左下角会显示远程主机的标识(如SSH: 192.168.10.21),此时 VS Code 的操作均基于远程主机;
四、文件夹共享设置
1. Windows 端共享文件夹设置
1)在 Windows 中选中需要共享的文件夹(如 D:\Qt\share),右键 → 属性 → 共享 选项卡;
2)点击 高级共享,勾选 共享此文件夹,设置 共享名(如 Share,后续挂载会用到);
3)点击 权限,确保当前 Windows 用户拥有 读取 / 写入 权限(避免挂载后无法修改文件);
2. 配置共享文件夹,如下图所示

3. VMware 虚拟机安装 VMware Tools
1)在 VMware 菜单栏点击 虚拟机 → 安装 VMware Tools。
2)Ubuntu 会自动挂载光驱,进入光驱目录(如 /media/$USER/VMware Tools)
3)把 VMwareTools-*.tar.gz 拷贝到有权限操作的目录(如 /home)
4)添加可操作权限 sudo chmod +x VM(Tab 键即可显示全名)
5)解压缩:tar -xvf VM(Tab 键),便会自动解压生成 vmware-tools-distrib 文件夹到当前目录
6)进入解压缩后的文件夹中:cd vm(Tab 键)
7)运行安装:sudo ./vm(Tab 键)
8)当出现[yes]或[no]时,只需要输 入 y 并回车即可,其余情况直接回车
9)安装完成后重启 Ubuntu
4. 手动挂载(重启虚拟机会失效。。。)
挂载目录默认是 /mnt/hgfs/[共享名]
若 /mnt/hgfs 不存在,需要手动创建并挂载
sudo mkdir -p /mnt/hgfs
sudo vmhgfs-fuse .host:/ /mnt/hgfs -o allow_other
5. 设置开机自动挂载
1)先备份原文件(防止配置错误):sudo cp /etc/fstab /etc/fstab.bak
2)编辑 fstab 文件:sudo nano /etc/fstab
3)在文件末尾添加以下内容(直接复制即可):.host:/ /mnt/hgfs fuse.vmhgfs-fuse defaults,allow_other 0 0
4)挂载测试:sudo mount -a
5)开机验证共享文件夹是否失效
6)cd /mnt/hgfs 即可看到共享的文件夹,在共享目录下按 ctrl + D 可以收藏文件夹路径用来快速访问
五、编译代码
1. 命令行编译代码
1)进入项目根目录:cd /mnt/hgfs/Share/xdual
2)创建 build 目录并进入:mkdir -p build && cd build
3)配置 CMake 生成 Makefile:cmake ..
4)编译项目:make -j4
2. vs code 里编译代码
1)选择 CMake: Select a Kit 自动创建 build 文件夹,生成 Makefile 文件

2)选择 CMake: Build 自动调用 make 命令编译 Makefile,编译过程的日志会显示在「输出」面板中
