本教程介绍如何使用VisualGDB CMake项目系统开发物理上位于Linux机器上的项目,使用Visual Studio和VisualGDB。与需要在Windows端下载源代码和标头或使用难以维护的共享文件夹的常规VisualGDB项目不同,直接访问的项目允许Visual Studio直接编辑Linux机器上的文件,始终确保您使用的是最新版本的文件。
在开始之前,请安装VisualGDB 5.3或更高版本。
- 启动Visual Studio并打开VisualGDB Linux项目向导:
- VisualGDB只能对基于CMake的项目使用直接SSH访问,因此选择“创建新项目 - >使用CMake”并确保选中“使用高级CMake项目子系统”复选框:
- 在下一页上选择您的Linux机器:
- 在“源代码访问”上选择“直接通过SSH访问源”,然后单击“完成”以生成项目:
- 通过“Ctrl-Shift-B”构建项目:
- 确保按“F5”可以调试项目:
- 检查项目的Windows文件夹。请注意它既不包含源也不包含构建的二进制文件,只包含解决方案文件,VisualGDB项目文件和IntelliSense缓存:
- 将鼠标悬停在Visual Studio中的源文件选项卡上。请注意用于远程项目的“vgdb-ssh://”语法:
- 在解决方案资源管理器中右键单击目标,然后选择“在此处打开终端”:
- 我们现在将在Linux机器上安装“zlib”库,并展示VisualGDB如何自动识别它。在SSH控制台中运行“sudo apt-get install zlib1g-dev”命令:
- 安装成功后,尝试包含<zlib.h>标头。了解IntelliSense如何立即获取它,而无需重新同步任何目录:
- 尝试从代码中调用zlibVersion()函数。查看由于缺少被调用函数的定义而导致链接失败的方式:
- 打开主目标的属性页面,并将“z”添加到Linked Libraries字段:
- 了解VisualGDB如何自动编辑CMakeLists.txt中的target_link_libraries()语句:
- 尝试调试目标以确保正确调用函数:
- 尝试通过Add-> New Item添加新的源文件并立即将其删除(选择“Remove”,而不是“Delete”以保留在磁盘上)。然后保存您的项目:
- 现在选择“添加 - >现有项目”:
- 了解VisualGDB如何浏览Linux机器上的远程文件系统,就像文件位于Windows上一样:
- 在Solution Explorer中右键单击该项目,然后选择“VisualGDB Project Properties”:
- VisualGDB项目属性窗口允许编辑各种VisualGDB特定的项目属性(例如,您可以显式指定cmake位置或添加“-DCMAKE_VAR_NAME = VALUE”参数来修改项目配置):
- VisualGDB CMake项目是自给自足的。你总是可以通过运行CMake从Linux机器构建它们:
- VisualGDB使用高度优化的缓存机制来避免一遍又一遍地下载相同的文件。它在CodeDB \ <project> \ VFSCache目录下维护相关文件的缓存副本,并定期检查相关的远程目录是否有更改。与需要事先下载整个include和源目录的常规项目不同,直接访问的项目仅在需要时读取必要的文件,从而提高性能并减少混淆。您可以通过View-> Clang IntelliSense Diagnostics Console-> Remote FS查看远程FS缓存的内部状态:
控制台显示列出目录和从Linux计算机获取文件所花费的确切时间,因此您可以快速检查网络连接是否为直接访问模式提供了足够的性能。