赞
踩
(本文含目录,可自行打开)
编写完who命令初始版本之后呢,便用VS进行远程调试,VS远程运行成功,linux控制台输出也有,如下:
但是呢,VS打断点进行单步调试时会出现:
然后就开始了疯狂的debug之旅---------
各种具体实践及踩坑如下:
无法读取文件(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分钟不到便已下载完毕!
下载完毕之后,即可进行单步调试,问题解决。
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 安装 remote development 插件,安装成功,左下角会出现 >< 符号
具体操作如下图
1-点击黄色><按钮
2-
3,-
4-
5-然后就会出现如下config文件,想添加远程链接主机只需要在文件中输入接相关配置即可(想要登陆root用户,参考链接:vscode远程链接登陆root用户,建议root用户登陆,不然后面会用很多权限的限制,无法正常调试),以后再添加新远程主机,只需要在改文件下面继续按同样格式写就行
按图中操作,最后写入如下配置
Host 名称,随便取,貌似不能带 @ 符号
HostName 远程的主机地址,ip 域名都可以
User 连接的用户名
Host first
HostName 192.168.241.133
User new_top
配置完成后就会显示出下面的first远程链接
点击添加:
出现新窗口,在终端处输入linux密码,进行登录。然后打开文件夹
就会弹出ubuntu下家目录下的文件,在里面选择要添加的程序文件夹即可。
问题解决!(记住这里必须添加cpp文件的上一层文件夹,不能再往上包含,即工作目录下就必须是cpp文件)
标题2与标题3分别搞定了win10下与unix下的VScode下载与配置,那么,配置好VScode之后就该运行C程序了。VScode运行C程序的运行方式在win下与unix下是一样的,所以下面给出通法
先安装remote-ssh上的C/C++插件(vsCode本地C/C++不行),直接在本地C/C++插件那里点击下载remote–ssh C/C++ install
创建c_cppxxxxx.json—(注意:要确保此时远程机器上有g++和gcc,没有需要apt install 进行安装)
编译路径设置为/usr/bin/gcc(因为vscode是远程调试,所以编译器用的是虚拟机上的编译器,即gcc或者g++,不然会报错找不到源文件)
创建task.json文件—更改见参考博客:linux下运行C程序
创建launch文件----更改两个地方即可:
到这里就全部配置完毕,可以直接debug程序了
若提示“g++ 未找到命令”,则说明linux端没有下载g++编译器,自行apt-get下载;若显示“检测到 #include 错误。请更新 includePath”,则说明2,3,4步没有执行,执行完2,3,4步之后重启vsCode,就不会再报错。
g++下有时运行会报错(太多参数传入函数xxx);但gcc没问题
全部完成之后,可以试着下载一个glibc库,该库中有linux系统中数据类型与结构体的源码,为以后学习做准备。如何下载见标题二
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。