当前位置:   article > 正文

Windows(10/11)端vscode开发、调试远程Linux(Ubuntu14.04)端c++ 开发环境部署步骤_vscode 远程linux 调试

vscode 远程linux 调试

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文件存放路径。

  1. mkdir ~/.ssh
  2. cd ~/.ssh
  3. cat your_download_path/id_rsa.pub >> authorized_keys

4、vscode连接远程主机

        点击左侧菜单栏中远程资源管理器打开远程菜单,将鼠标放到ssh栏中点击出现的十字按钮

        在上方弹出的输入框内输入目标Linux服务器的IP地址并回车,在之后出现的选择SSH配置文件选项中选择第一条即C:\Users\Username\.ssh\config选项,选择后页面左下角出现弹窗,点击弹窗中的打开配置文件按钮。将config文件内容改为:

  1. Host ubuntu14_server_c1
  2. HostName 192.168.137.168
  3. User htinvent
  4. IdentityFile "C:\Users\Admin\.ssh\id_rsa_ubuntu14_server"
  5. Host ubuntu14_server_c2
  6. HostName 192.168.137.169
  7. User htinvent
  8. IdentityFile "C:\Users\Admin\.ssh\id_rsa_ubuntu14_server2"

        其中HostName为目标Linux服务器地址,User为存放公玥的Linux账户名,IdentityFile为私玥文件。保存更改后重启vscode。

        重启后再次点击左侧菜单栏中远程资源管理器打开远程菜单,展开SSH选项后出现配置文件中的连接名。将鼠标放在连接名上并点击出现的两个选项中的一个进行连接。之后在上方弹出的选项中分别选择Linux、continue。至此完成远程连接。

5、配置远程编译及调试

        vscode远程连接至目标主机后点击文件——打开文件夹,打开一个文件夹。创建一个main.cpp文件,内容为:

  1. #include <iostream>
  2. using namespace std;
  3. int main()
  4. {
  5. cout << "SSH" << endl;
  6. return 0;
  7. }

        点击左侧菜单栏中运行和调试打开调试菜单并点击运行和调试。

        点击弹出的选择栏中任意一项选项,之后弹出编译失败警告弹窗,点击终止按钮。回到资源管理器,应生成/.vscode/tasks.json文件。

        

 将tasks.json内容改为

  1. {
  2. "tasks": [
  3. {
  4. "type": "shell",
  5. "label": "linux_make_debug",
  6. "command": "${workspaceFolder}/cmd_debug.sh",
  7. "args": [],
  8. "problemMatcher": []
  9. },
  10. {
  11. "type": "shell",
  12. "label": "linux_debug_only",
  13. "command": "${workspaceFolder}/empty.sh",
  14. "args": [],
  15. "problemMatcher": []
  16. }
  17. ],
  18. "version": "2.0.0"
  19. }

点击左侧菜单栏中运行和调试打开调试菜单并点击创建launch.json文件按钮。

将 launch.json内容改为

  1. {
  2. "version": "0.2.0",
  3. "configurations": [
  4. {
  5. "name": "C/C++: g++ linux_make_debug",
  6. "type": "cppdbg",
  7. "request": "launch",
  8. "program": "${workspaceFolder}/bin/test",
  9. "args": [], /**/
  10. "stopAtEntry": false,
  11. "cwd": "${workspaceFolder}/bin",
  12. "environment": [],
  13. "externalConsole": false,
  14. "MIMode": "gdb",
  15. "miDebuggerPath": "/usr/bin/gdb",
  16. "setupCommands": [
  17. {
  18. "description": "为 gdb 启用整齐打印",
  19. "text": "-enable-pretty-printing",
  20. "ignoreFailures": true
  21. },
  22. {
  23. "description": "将反汇编风格设置为 Intel",
  24. "text": "-gdb-set disassembly-flavor intel",
  25. "ignoreFailures": true
  26. }
  27. ],
  28. "preLaunchTask": "linux_make_debug",
  29. },
  30. {
  31. "name": "C/C++: g++ linux_debug_only",
  32. "type": "cppdbg",
  33. "request": "launch",
  34. "program": "${workspaceFolder}/bin/test",
  35. "args": [], /**/
  36. "stopAtEntry": false,
  37. "cwd": "${workspaceFolder}/bin",
  38. "environment": [],
  39. "externalConsole": false,
  40. "MIMode": "gdb",
  41. "miDebuggerPath": "/usr/bin/gdb",
  42. "setupCommands": [
  43. {
  44. "description": "为 gdb 启用整齐打印",
  45. "text": "-enable-pretty-printing",
  46. "ignoreFailures": true
  47. },
  48. {
  49. "description": "将反汇编风格设置为 Intel",
  50. "text": "-gdb-set disassembly-flavor intel",
  51. "ignoreFailures": true
  52. }
  53. ],
  54. "preLaunchTask": "linux_debug_only",
  55. }
  56. ]
  57. }

        其中program需要根据项目实际生成可执行文件名称修改,其中args为运行可执行文件时的附加参数。

        在最外层分别创建cmd_debug.sh及empty.sh,将cmd_debug.sh的内容改为自己的编译指令如:

  1. mkdir bin
  2. g++ main.cpp -o bin/test -g

        可以根据自己的编译工具自由发挥,只要目标文件名和 launch.json保持一致即可。

6、测试

        在main.cpp中打上断点并按照图示开始编译及调试。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/我家自动化/article/detail/213533?site
推荐阅读
相关标签
  

闽ICP备14008679号