作为一个Visual Studio的忠实用户,要开发Linux平台下开发调试程序很难适应,还好之前做的都是些小项目,在Linux平台下索性直接用Code::Blocks这种跨平台的IDE直接开发调试了,直到最近要跟用Ubuntu系统的下位机进行串口通信才想起来这个玩意...中途也是踩了很多坑...
VisualGDB通过SSH服务连接两台机器,从而进行远程访问,Linux平台使用虚拟机或者物理机作为都可以。
这里我用了两台物理机(虚拟机效率太慢了),一台是Windows10 + Visual Studio 2017作为项目开发平台,另一台是X86 Ubuntu 18.04作为项目部署平台。
官方教程:https://visualgdb.com/tutorials/linux/
1. 安装openssh-server
sudo apt-get install openssh-server
2. 启动SSH服务
sudo /etc/init.d/ssh start
3. 查看SSH服务是否启动
ps -e|grep ssh
像这样的,只有ssh-agent说明SSH服务还未启动
若出现sshd进程则说明SSH服务已经启动
也可以通过sudo service ssh
4. 修改SSH服务参数
SSH默认使用端口为Port 22,可以通过修改其配置文件自定义使用端口号
sudo vim /etc/ssh/sshd_config
进入配置文件后可以看到当前默认的端口号为22,修改后然后重启SSH服务即可
SSH配置完成后,可以通过Xshell、Putty等软件测试是否可以通过SSH服务进行远程连接
官网下载地址:http://www.visualgdb.com/download/
目前最新的版本是5.4r4,作为一款付费插件,下载后使用有30天的试用期。或者可以去下个破解版,不过还是建议有条件的朋友去使用正版,毕竟稳定性和更新的及时性都没法比。
我个人目前用的是5.3版本,也是VisualGDB官方教程目前所用的版本。
下载下来后基本就是傻瓜式安装了,这里就不多说了。
安装完成后就可以新建一个VisualGDB Linux Project测试。
确认创建项目后弹出Linux Project设置向导,VisualGDB支持构建4个不同子系统,MSBuild类似于直接在VS的环境下直接编译调试Linux平台上的代码,但是无法将项目直接在Linux平台上部署构建。如果要在Linux平台上直接构建项目则选择第三项Use CMake创建一个CMake项目,这里使用的就是这一项。
在下面Language standard中可以选择编程语言标准,这里选择C++11,另外这里建议把最下面一项的“创建高级项目设置”勾选,然后点击Next进行下一项设置。
这一页有三个选项,第一个主选项为通过网络服务(SSH)将项目构建并部署在另一个Linux平台上,下面有一项可选项可以将项目的构建与部署分离,即在一台机器上运行编译器,而在另外一台机器上进行程序的调试。第二个主选项为交叉编译,这里选择第一项直接通过SSH服务构建部署项目即可。
这里需要选择通过SSH连接的下位机,点击Remote computer下拉菜单选择“create a new SSH connection”,在弹框中相应输入下位机Host name、User name以及Root密码确认即可。之后Remote toolchain选择默认的GCC-based toolchain。
之后VisualGDB需要一段时间进行自检,检测工具链是否正常运行。
由于VisualGDB是将源代码在Windows端使用VS进行编辑,在Linux端进行编译调试,所以这里给出了两种不同的保持源代码同步的可选方式。
第一个选项是源代码将通过SSH服务将Linux端的源代码进行自动上传至Windows端,第二个选项是直接通过SSH服务访问Linux端的源代码。这里是我踩的第一个坑,第一次创建项目我选择的是第二项,结果由于传输速度有限导致在编辑代码时时常发生卡顿,之后换选了第一项就可以了。
设置完成后点击Finish,之后会自动创建项目。
创建成功的项目会自带一个.cpp源文件,里面是一个Hello World字符串输出程序。
这里是第二个坑,第一次创建完成项目后这里居然报错“无法找到“iostream头文件”,这里也是整了好久,最后百度到这个文章解决了找不到Linux头文件的问题:https://blog.csdn.net/howard789/article/details/85206654
VisualGDB项目在调试时需要设置断点,否则在调试时会报错。
在菜单栏中 项目 —》VisualGDB Project Properties 中可以更改调试的设置。
参考文章 :
https://blog.csdn.net/qq_36659192/article/details/82942794
https://www.cnblogs.com/hbccdf/p/use_vs_and_visualgdb_develope_linux_app.html
https://www.cnblogs.com/robinex/p/7875934.html