需求背景
在文章《Visual Studio连接Linux服务器编译CMake项目,生成在Linux上运行的程序》中已经讲述了如何使用 Visual Studio 2019 连接远程 Linux 服务器来编译 CMake 项目,本以为这样就可以了安心开发了,但是使用起来太艰难了,每次修改完 CMakeLists.txt 文件时,又或是编译代码时,慢的要死,甚至到了一小段时间里都卡死的程度。
使用这种方式编译代码时,有两个步骤,
- 将代码上传到远程Linux服务器上
- 远程控制Linux系统进行代码编译
然而就是这小小的两步,硬是将我的电脑卡死,但是同样的代码,直接在 Linux 上编译都是秒秒钟的事。由于我习惯了Windows,直接在 Linux 系统上编辑调试代码不太习惯,效率很低,而且也不会gdb调试,时间上实在消耗不起,所以才另寻出路看看。当然应该也和我自身的笔记本电脑配置(我的配置也还行)有关,但这不是关键因素,于是就看上了vs code,几次实验下来,效果很棒,所以分享出来。
本文基于的开发环境说明
- window系统:Windows 10 企业版 64位操作系统
- Linux系统:BigCloud Enterprise Linux 7.8 (Core)
- Visual Studio Code:版本: 1.72.2 (user setup)
VS Code连接远程Linux
vs code 使用起来很顺的一个原因就是,远程连接Linux系统后,是相当于直接在Linux系统上操作,并不需要像使用 Visual Studio 2019 那样,执行代码上传和远程控制编译的步骤。
1. 安装远程连接的 SSH 插件
首先想要远程连接服务器,需要使用 SSH 协议,所以我们首先需要安装Remote-SSH插件。
2. 配置远程连接
接着弹出如下对话框:
添加后效果如下:
3. 连接远程Linux服务器
这里选择 在当前窗口中进行远程连接
之后弹出如下窗口:选择远程服务器的系统类型
接着让输入远程连接的用户密码。
输入密码后,就可以远程连接上了,右下角的提示就会开始在远程Linux服务器上安装一个VS Code Server,安装好就可以使用了。
在远程Linux上创建CMake项目
1. 在VS Code上打开远程Linux上的目录
我这里选择了目录:/home/code/test/,点击确定后,会再次提示输入密码,还是登录用户名的密码,然后会提示:是否信任此文件夹中的文件的作者?,点击信任就可以了。
2. 创建CMake项目
如下所示:
这里我直接在 VS Code 中创建了两个文件:main.cpp、CMakeLists.txt 两个文件。CMakeLists.txt 文件是 CMake 项目的配置文件,必须有,且文件名的大小写必须这样。
在 main.cpp 中的代码如下:
#include <iostream>
int main()
{
int a = 1;
int b = 2;
int c = a + b;
std::cout << "a + b = " << c << std::endl;
return 0;
}
在 CMakeLists.txt 中的代码如下:
cmake_minimum_required(VERSION 3.1)
PROJECT(OutAdd)
add_executable(OutAdd main.cpp})
关于 CMakeLists.txt 中的命令的意思,请参考文章:《CMake项目中神器:CMakeLists.txt》
这里还要安装一个 CMake Tools 的插件,专门用来在 VS Code 中支持编辑 CMakeLists.txt 文件的。
3. 代码编译
执行 CMake 编译
执行代码编译
到这里代码就编译成功了。可以先在Linux上运行看看。
[root@localhost test]# ls
build CMakeLists.txt main.cpp
[root@localhost test]# cd build/
[root@localhost build]# ls
build.ninja CMakeCache.txt CMakeFiles cmake_install.cmake compile_commands.json OutAdd
[root@localhost build]# ./OutAdd
a + b = 3
[root@localhost build]#
上面测试,程序正常运行,结果是对的。也就是说我们用 VS Code 编译 CMake 项目成功了。
代码调试
既然代码编译好了,那我们就应该调试一下。VS Code 上调试C++代码,需要安装 C/C++ Runner 插件。
安装好之后,直接设置断点,然后按 F5 键。
选择 C++(GDB/LLDB) 调试工具、
选择 编译器 ,这里选择 g++
然后就可以进行调试了。
VS Code 上面编译 CMake 项目和直接在 Linux 上一样快速。且编辑代码是在 Windows上,符合我的习惯。调试简单。完美解决我的问题。
断开远程Linux连接
如果想断开远程Linux连接,可以点击左下角显示远程IP的绿色的区域,然后在弹出的对话框中,选择最后一项【 关闭远程连接 】即可,这样就可以打开Windows本地的项目目录了。