1、安装vscode。
进入https://code.visualstudio.com/即vsocde官网选择Windows x64版本下载并安装。
安装过程中推荐勾选往右键菜单添加通过vscode打开文件夹的选项。
2、vsocde插件安装
打开vscode,点击左侧菜单栏中拓展选项并安装下列插件
C/C++ Themes
C/C++
C/C++ Clang Command Adapter
C/C++ Extension Pack
C/C++ Runner
CMake
CMake Tools
cmake-format
CMake Language Support
CodeLLDB
Better C++ Syntax
Chinese (Simplified) (简体中文) Language Pack for Visual Studio Code
Remote - SSH
Remote - SSH: Editing Configuration Files
Dev Containers
Remote - Tunnels
Remote Development
Remote Explorer
完成插件安装后重启vscode。
3、配置ssh密钥
打开cmd并运行ssh-keygen命令,连续按回车键直到运行结束,打开图中路径找到密钥。
将id_rsa文件即私玥改为自己需要的文件名,如id_rsa_ubuntu14_server。将id_rsa.pub文件即公玥拷贝至远程Linux设备,在远程Linux设备上运行下列命令,其中your_download_path为Linux端id_rsa.pub文件存放路径。
mkdir ~/.ssh
cd ~/.ssh
cat your_download_path/id_rsa.pub >> authorized_keys
4、vscode连接远程主机
点击左侧菜单栏中远程资源管理器打开远程菜单,将鼠标放到ssh栏中点击出现的十字按钮
在上方弹出的输入框内输入目标Linux服务器的IP地址并回车,在之后出现的选择SSH配置文件选项中选择第一条即C:\Users\Username\.ssh\config选项,选择后页面左下角出现弹窗,点击弹窗中的打开配置文件按钮。将config文件内容改为:
Host ubuntu14_server_c1
HostName 192.168.137.168
User htinvent
IdentityFile "C:\Users\Admin\.ssh\id_rsa_ubuntu14_server"
Host ubuntu14_server_c2
HostName 192.168.137.169
User htinvent
IdentityFile "C:\Users\Admin\.ssh\id_rsa_ubuntu14_server2"
其中HostName为目标Linux服务器地址,User为存放公玥的Linux账户名,IdentityFile为私玥文件。保存更改后重启vscode。
重启后再次点击左侧菜单栏中远程资源管理器打开远程菜单,展开SSH选项后出现配置文件中的连接名。将鼠标放在连接名上并点击出现的两个选项中的一个进行连接。之后在上方弹出的选项中分别选择Linux、continue。至此完成远程连接。
5、配置远程编译及调试
vscode远程连接至目标主机后点击文件——打开文件夹,打开一个文件夹。创建一个main.cpp文件,内容为:
#include <iostream>
using namespace std;
int main()
{
cout << "SSH" << endl;
return 0;
}
点击左侧菜单栏中运行和调试打开调试菜单并点击运行和调试。
点击弹出的选择栏中任意一项选项,之后弹出编译失败警告弹窗,点击终止按钮。回到资源管理器,应生成/.vscode/tasks.json文件。
将tasks.json内容改为
{
"tasks": [
{
"type": "shell",
"label": "linux_make_debug",
"command": "${workspaceFolder}/cmd_debug.sh",
"args": [],
"problemMatcher": []
},
{
"type": "shell",
"label": "linux_debug_only",
"command": "${workspaceFolder}/empty.sh",
"args": [],
"problemMatcher": []
}
],
"version": "2.0.0"
}
点击左侧菜单栏中运行和调试打开调试菜单并点击创建launch.json文件按钮。
将 launch.json内容改为
{
"version": "0.2.0",
"configurations": [
{
"name": "C/C++: g++ linux_make_debug",
"type": "cppdbg",
"request": "launch",
"program": "${workspaceFolder}/bin/test",
"args": [], /**/
"stopAtEntry": false,
"cwd": "${workspaceFolder}/bin",
"environment": [],
"externalConsole": false,
"MIMode": "gdb",
"miDebuggerPath": "/usr/bin/gdb",
"setupCommands": [
{
"description": "为 gdb 启用整齐打印",
"text": "-enable-pretty-printing",
"ignoreFailures": true
},
{
"description": "将反汇编风格设置为 Intel",
"text": "-gdb-set disassembly-flavor intel",
"ignoreFailures": true
}
],
"preLaunchTask": "linux_make_debug",
},
{
"name": "C/C++: g++ linux_debug_only",
"type": "cppdbg",
"request": "launch",
"program": "${workspaceFolder}/bin/test",
"args": [], /**/
"stopAtEntry": false,
"cwd": "${workspaceFolder}/bin",
"environment": [],
"externalConsole": false,
"MIMode": "gdb",
"miDebuggerPath": "/usr/bin/gdb",
"setupCommands": [
{
"description": "为 gdb 启用整齐打印",
"text": "-enable-pretty-printing",
"ignoreFailures": true
},
{
"description": "将反汇编风格设置为 Intel",
"text": "-gdb-set disassembly-flavor intel",
"ignoreFailures": true
}
],
"preLaunchTask": "linux_debug_only",
}
]
}
其中program需要根据项目实际生成可执行文件名称修改,其中args为运行可执行文件时的附加参数。
在最外层分别创建cmd_debug.sh及empty.sh,将cmd_debug.sh的内容改为自己的编译指令如:
mkdir bin
g++ main.cpp -o bin/test -g
可以根据自己的编译工具自由发挥,只要目标文件名和 launch.json保持一致即可。
6、测试
在main.cpp中打上断点并按照图示开始编译及调试。