VisualGDB系列9:配置VS直接通过SSH方式访问Linux项目
2017-11-21 23:33
1151 查看
根据VisualGDB官网(https://visualgdb.com)的帮助文档大致翻译而成。主要是作为个人学习记录。有错误的地方,Robin欢迎大家指正。
本文介绍如何使用VS和VisualGDB开发这样的项目:用VisualGDB CMake Project System来开发驻留在Linux机器上的项目。
常规的VisualGDB项目,有的需要从Windows端下载源文件和头文件,有的需要使用难以维护的共享文件夹。而直接访问的项目使得VS能够直接编辑Linux机器上的文件,保证你总是使用文件的最新版本。
进行如下步骤之前,确保安装VisualGDB5.3或更新版本。
在源码中调用函数zlibVersion(),可以看到,由于缺少被调用函数的定义,链接(link)会失败:
打开主程序target的属性页,在”Linked Libraries field”中添加”z”:
对目标进行调试,确保函数正确调用:
观察一下,VisualGDB如何在Linux机器上浏览远程文件系统,就像在本地Windows浏览一样:
VisualGDB Project Properties窗口允许编辑各种VisualGDB专有的项目属性。比如,可以明确设定cmake的位置,或者添加”-DCMAKE_VAR_NAME=VALUE”参数来修改项目的配置:
常规的项目需要提前下载整个include目录和源文件目录,而直接访问的项目只有需要时才去读取相应的文件,所以这种方式性能更好且更加简单清晰。
如果想查看远程FS缓存的内部状态,可以通过”View”->”Clang IntelliSense Diagnostics Console”->”Remote FS”:
这个控制台将会显示从远程Linux机器罗列目录及获取文件所耗费的精确时间,所以你就可以快速检查你的网络能否满足直接访问模式所需的网络性能。
本文介绍如何使用VS和VisualGDB开发这样的项目:用VisualGDB CMake Project System来开发驻留在Linux机器上的项目。
常规的VisualGDB项目,有的需要从Windows端下载源文件和头文件,有的需要使用难以维护的共享文件夹。而直接访问的项目使得VS能够直接编辑Linux机器上的文件,保证你总是使用文件的最新版本。
进行如下步骤之前,确保安装VisualGDB5.3或更新版本。
1 打开VisualGDB Linux项目向导
启动VS,打开VisualGDB Linux Project向导:2 创建基于CMake项目
只有基于CMake的项目,VisualGDB才能使用SSH直接访问。选择”Create a new Project”->”Use CMake”,并勾选”Use the advanced CMake Project Subsystem”复选框:3 选择Linux机器
在下一页选择你的Linux机器:4 配置源码访问
在子页面”Source code access”,选择”Access the sources directly over SSH”,并点击”Finish”来创建项目:5 构建项目
通过”Ctrl-Shift-B”来build该项目:6 调试项目
放置断点,并按F5开始调试项目:7 查看项目的Windows文件夹
检查项目的Windows文件夹,发现该文件夹下既不包含源码文件,也不包含构建的二进制文件,只是包含solution文件、VisualGDB项目文件以及IntelliSense缓存:8 VS里观察远程文件
在VS里,将鼠标悬在源文件tab上,可以看到,对于远程项目,路径是”vgdbssh://”这样的语法模式。9 打开终端
在Solution Explorer中,在target上右键,然后选择”Open Terminal Here”:10 安装”zlib”库
下面在Linux机器上安装”zlib”库,并展示VisualGDB如何自动识别它。在SSH Console里运行” sudo apt-get install zlib1g-dev”:11 调用zlib中的函数
一旦zlib安装成功后,源文件中包含<zlib.h>头文件。观察IntelliSense如何即时提示,而不需要同步任何目录:在源码中调用函数zlibVersion(),可以看到,由于缺少被调用函数的定义,链接(link)会失败:
打开主程序target的属性页,在”Linked Libraries field”中添加”z”:
对目标进行调试,确保函数正确调用:
12 VisualGDB自动编辑CMakeLists文件
观察一下VisualGDB如何在CMakeLists.txt文件中编辑target_link_libraries()声明:13 添加新的源文件
通过”Add”->”New Item”来添加一个新的源文件,也可以remove该文件(选择”Remove”,而不是”Delete”,使得文件继续保留在磁盘上)。然后保存项目:14 添加已存在的项
选择”Add”->”Existing Item”:观察一下,VisualGDB如何在Linux机器上浏览远程文件系统,就像在本地Windows浏览一样:
15 修改项目属性
Solution Explorer中,在项目上右击,选择”VisualGDB Project Properties”:VisualGDB Project Properties窗口允许编辑各种VisualGDB专有的项目属性。比如,可以明确设定cmake的位置,或者添加”-DCMAKE_VAR_NAME=VALUE”参数来修改项目的配置:
16 Linux机器上运行CMake来构建项目
VisualGDB CMake项目是自治的(self-sufficient),我们也可以在Linux机器上运行CMake来构建它们:17 高度优化的缓存机制
VisualGDB采用高度优化的缓存机制来避免一次又一次地下载同一个文件。它在CodeDB\<project>\VFSCache目录下保持着相关文件的缓存拷贝,并周期性地检测相关的远程目录是否变化。常规的项目需要提前下载整个include目录和源文件目录,而直接访问的项目只有需要时才去读取相应的文件,所以这种方式性能更好且更加简单清晰。
如果想查看远程FS缓存的内部状态,可以通过”View”->”Clang IntelliSense Diagnostics Console”->”Remote FS”:
这个控制台将会显示从远程Linux机器罗列目录及获取文件所耗费的精确时间,所以你就可以快速检查你的网络能否满足直接访问模式所需的网络性能。
相关文章推荐
- VisualGDB系列6:远程导入Linux项目到VS中
- linux服务器下部署项目修改配置使请求路径前自动加上项目名称 附 直接请求ip访问方法
- 配置ssh信任(不通过密码验证ssh直接访问目标机器)
- VisualGDB系列5:使用VS来开发Linux程序
- VisualGDB系列11:Linux C++项目中使用外部Linux库
- VisualGDB系列8:使用VS创建CMake Linux项目
- 模拟的nginx 配置为域名的的方式直接访问项目
- VisualGDB系列7:使用VS创建Linux静态库和动态库
- linux下 pppoe通过直接设置配置文件方式进行拨号
- VisualGDB系列4:概述-Linux程序与VS
- VisualGDB:远程导入Linux项目到VS中
- Tomcat配置去掉项目名称,直接通过域名访问
- ssh如何通过跳板机直接访问到后端服务器(Mac&Linux&Windows解决方案)
- 一步一个脚印学习WCF系列之WCF概要—WCF服务的创建与调用HelloWorld实例,通过配置文件方式(六)
- 我的LINUX学习之路之十八之通过SSH方式远程登陆linux
- weblogic 10.x 配置虚拟目录(实现直接ip或者域名访问,去掉项目名)
- Linux下通过iptables配置工具限制ip访问服务器
- VirtualBox安装Centos,配置网络(主机可以通过SSH连接虚拟机系统,同时虚拟机系统可以访问外网)