vscode Makefile C++远程编译调试环境配置

介绍一下在服务器或容器内使用vscode远程编译调试C++的方法。

首先使用指令运行镜像,为了后面vscode进行ssh调试,预留一个2001的端口映射

sudo run docker -p 2001:22 images

进入镜像内部安装openssh-server wget curl

apt-get update

apt-get install openssh-server wget curl

 完成安装后打开ssh配置文件,允许ssh登录root权限

vim /etc/ssh/sshd_config

更改UsePAM yes

添加PermitRootLogin yes

保存退出,重新启动ssh服务

service ssh restart

更改登录密码

passwd

这时你需要使用ssh端口映射登录你的容器,在本地

ssh -p 2001 root@host

如果显示的主机名是你的容器名,那就登录成功了。有时会遇见登陆不成功的情况,

第一确保端口映射和登录端口是同一个,

第二重启ssh服务,

第三apt-get update和apt-get upgrade。

再有问题重启容器,再进行以上步骤。


现在配置本地的vscode

打开vscode后搜索扩展插件C/C++和remote-ssh 并进行安装。

vscode Makefile C++远程编译调试环境配置_第1张图片

vscode Makefile C++远程编译调试环境配置_第2张图片

安装完成后点击会显示远程连接界面,点击的+号,

输入ssh指令和端口号。ssh root@hostname -p 2001

或者点击SSH TARGETS的配置文件打开第一个config文件,在文件中进行配置vscode Makefile C++远程编译调试环境配置_第3张图片

保存后在SSH TARGETS下的你的host后面会有,点击会打开新窗口显示连接,输入你的ssh密码会连接上。

有时会显示连接出错Failed to parse remote port from server output,像这样。

·vscode Makefile C++远程编译调试环境配置_第4张图片

从网上搜索的原因是容器内的vscode-server出现问题,需要关闭重启。有几种解决方法,可以挨个试一下。

1、ctrl+shift+p调出指令窗,搜索选择Remote-ssh:Uninstall vscode-server from host..来删除容器端的vscode-server

2、在容器内的root里会有.wget-hsts 删除他重新连接。

3,、重启ssh

service ssh restart

4、如果添加了国内的apt源,把apt源换成官方的。

5、apt-get update和apt-get upgrade

5、重启容器。

以上方法也不保证有效,有时候上面方法试过后需要等一会儿。


vscode进入容器后,打开会指定workspace位置。直接连接到你要debug的示例下。再次输入密码。

在插件库中再次搜索C/C++,插件的描述页面会让你在容器端再次安装。点击再次安装。

现在需要两个文件来进行debug,tasks.json编译工程和launch.json来运行debug。


首先创建tasks.json:

Ctrl+shift+p搜索Tasks:Run Task->配置任务->使用模板创建->others。然后把下面代码替换进去

{

    // See https://go.microsoft.com/fwlink/?LinkId=733558

    // for the documentation about the tasks.json format

    "version": "2.0.0",

    "tasks": [

      {

        "label": "Build",

        "type": "shell",

        "command": "make",

        "group": {

          "kind": "build",

          "isDefault": true

        }

      }

    ]

  }

主要看“command” 后面跟的是README中编译指令

在Makefile中添加一行

CFLAGS += -g

来确保编译后可以调试。

 

然后创建launch.json:

点击会显示创建launch.json文件

vscode Makefile C++远程编译调试环境配置_第5张图片

选择C++(GDB/LLDB) 如果没有这个选项,在插件添加页面找到C/C++在ssh重新加载。然后会提醒刷新窗口,再次添加launch.json 就有会出现C++(GDB/LLDB)。

打开launch.json 更改这几项

以终端运行 app -c config.txt为例

“programe”指向你的可执行文件“${workspaceFolder}/app”

“args” 你的运行参数每个空格用,隔开["-c","config.txt"]

然后保存。使用ctrl+shift+B 来执行编译。

编译完成后打开调试界面

vscode Makefile C++远程编译调试环境配置_第6张图片

就可以设置断点监视变量参数了。

你可能感兴趣的:(机器学习)