VScode远程链接&远程C代码调试&glibc

(本文含目录,可自行打开)
编写完who命令初始版本之后呢,便用VS进行远程调试,VS远程运行成功,linux控制台输出也有,如下:VScode远程链接&远程C代码调试&glibc_第1张图片
但是呢,VS打断点进行单步调试时会出现:VScode远程链接&远程C代码调试&glibc_第2张图片
然后就开始了疯狂的debug之旅---------
各种具体实践及踩坑如下:

一 Ubuntu下Vscode调试出现无法打开“open64.c”:

	无法读取文件(Error: 找不到文件(vscode-remote://ssh-remote+first/build/glibc-OTsEL5/glibc-2.27/sysdeps/unix/sysv/linux/open64.c))。

open()与read()函数在glibc库中,本地没有glibc库,所以需要从网上下载该库
解决方法如下:

$cd /                  **(记住是根目录下)**
$sudo mkdir build
$cd build
$sudo mkdir glibc-OTsEL5(注意这里文件名对应报错的文件名)
$cd glibc-OTsEL5
$sudo wget http://ftp.gnu.org/gnu/glibc/glibc-2.27.tar.gz (注意这里包的版本2.27对应报错版本)
$sudo tar -zxvf glibc-2.27.tar.gz
其实就是没有找到相关库,需要在对应的地方放进对应的库文件。
(其实版本下错了也没关系,自己重命名为报错的类型也是可以的)

然后下载该库的时候发现下载速度奇慢,于是从网上找到了镜像源网站–各种镜像源,从上面复制出下载链接给到wget命令,1分钟不到便已下载完毕!
下载完毕之后,即可进行单步调试,问题解决。

二 linux下如何安装vsCode并成功运行第一个程序

打开终端,使用下列命令,通过官方PPA来安装Ubuntu Make:
sudo add-apt-repository ppa:ubuntu-desktop/ubuntu-make
sudo apt-get update
sudo apt-get install ubuntu-make

安装Ubuntu Make完后,接着使用下列命令安装Visual Studio Code:

sudo umake ide visual-studio-code

VScode远程链接&远程C代码调试&glibc_第3张图片
**注意:**这里可能需要重启一次才能搜的到

三 win10下VScode远程链接ubuntu中的C程序

插件安装

打开 vscode 安装 remote development 插件,安装成功,左下角会出现 >< 符号
具体操作如下图
1-点击黄色><按钮在这里插入图片描述
2-VScode远程链接&远程C代码调试&glibc_第4张图片
3,-VScode远程链接&远程C代码调试&glibc_第5张图片
4-在这里插入图片描述
5-然后就会出现如下config文件,想添加远程链接主机只需要在文件中输入接相关配置即可(想要登陆root用户,参考链接:vscode远程链接登陆root用户,建议root用户登陆,不然后面会用很多权限的限制,无法正常调试),以后再添加新远程主机,只需要在改文件下面继续按同样格式写就行VScode远程链接&远程C代码调试&glibc_第6张图片
按图中操作,最后写入如下配置
Host 名称,随便取,貌似不能带 @ 符号
HostName 远程的主机地址,ip 域名都可以
User 连接的用户名

Host first
    HostName 192.168.241.133
    User new_top
具体操作

配置完成后就会显示出下面的first远程链接
VScode远程链接&远程C代码调试&glibc_第7张图片
点击添加:在这里插入图片描述
出现新窗口,在终端处输入linux密码,进行登录。然后打开文件夹
VScode远程链接&远程C代码调试&glibc_第8张图片
就会弹出ubuntu下家目录下的文件,在里面选择要添加的程序文件夹即可。
问题解决!(记住这里必须添加cpp文件的上一层文件夹,不能再往上包含,即工作目录下就必须是cpp文件)

四 VScode运行ubuntu下的C程序

标题2与标题3分别搞定了win10下与unix下的VScode下载与配置,那么,配置好VScode之后就该运行C程序了。VScode运行C程序的运行方式在win下与unix下是一样的,所以下面给出通法

  1. 先安装remote-ssh上的C/C++插件(vsCode本地C/C++不行),直接在本地C/C++插件那里点击下载remote–ssh C/C++ install

  2. 创建c_cppxxxxx.json—(注意:要确保此时远程机器上有g++和gcc,没有需要apt install 进行安装VScode远程链接&远程C代码调试&glibc_第9张图片
    编译路径设置为/usr/bin/gcc(因为vscode是远程调试,所以编译器用的是虚拟机上的编译器,即gcc或者g++,不然会报错找不到源文件)

  3. 创建task.json文件—更改见参考博客:linux下运行C程序

  4. 创建launch文件----更改两个地方即可:

    1. 添加"preLaunchTask":,此项的名字应与下面所建的tasks.json中的任务名称一致。
    2. 修改参数"program", 后面接编译输出的可执行文件。该可执行文件是由task产生的,可见tasks.json是在launch.json前运行的。
  5. 到这里就全部配置完毕,可以直接debug程序了

  6. 若提示“g++ 未找到命令”,则说明linux端没有下载g++编译器,自行apt-get下载;若显示“检测到 #include 错误。请更新 includePath”,则说明2,3,4步没有执行,执行完2,3,4步之后重启vsCode,就不会再报错。

  7. g++下有时运行会报错(太多参数传入函数xxx);但gcc没问题

  8. 全部完成之后,可以试着下载一个glibc库,该库中有linux系统中数据类型与结构体的源码,为以后学习做准备。如何下载见标题二

仍需解决和钻研的问题和知识

什么是glibc库
什么是镜像源
umake又是啥,为何可以如此便捷的下载VScode
各种编译器minGW的区别以及与IDE的区别以及脚本语言与C语言的区别。win10下的vscode编译c程序时的编译器插件如何配置
微软等官方文档的作用,阅读与学习(比如vsCode,Visual stduio)很多问题都能在官方找到解答与使用方法

你可能感兴趣的:(Linux_VS,Code,linux)