Visual Studio配置远程开发调试Linux项目

一. 哪些项目模板可以选择

使用visual studio进行远程开发Linux项目,有两种比较易用的方式,一是只适用于Linux系统的项目,二是跨平台的c++项目

二. 只适用于Linux系统的c++项目

此种方式比较简单,我们使用此种方式无非就是看重了visual studio的强大的调试功能。
步骤如下:

  1. 创建新项目
    模板一定要选择平台为Linux,此处我们选择空项目。
    创建新项目
  2. 配置远程服务器
    工具->选项->跨平台->连接管理器->添加
    配置远程服务器
  3. 配置属性
    配置远程生成目录
    配置属性
  4. 断点调试
    接下来就可以愉快的在vs加入断点进行调试。
    可以看到远程Linux服务器上也会运行相应的进程及gdb进程。
    vs断点调试
    远程Linux中的相应进程
    如果是大型多线程项目,未曾使用,不知是否有坑!

三. 跨平台的c++项目(cmake)

使用cmake进行项目构建,而不是依赖于微软的sln进行构建。可以在本地windows和远程Linux都能进行调试,做跨平台的开发,非常的方便。前提是要会使用cmake~~。这里有一篇不错的CMake教程
《CMake教程》
步骤如下:

  1. 创建新项目
    选择CMake项目,此种项目不会再生成.sln或者.vcxproj
  2. 管理配置
    配置->管理配置,点击后会打开CMakePresets.json文件。
    其中的Linux-debug项,是与我们的远程调试相关的属性配置。
    示例如下
{
        "name": "linux-debug", #会在调试框中显现的名称
        "displayName": "Linux Debug",
        "generator": "Unix Makefiles",
        "binaryDir": "${sourceDir}/out/build/${presetName}",
        "installDir": "${sourceDir}/out/install/${presetName}",
        "cmakeExecutable": "/usr/bin/cmake", #填写远程的CMake路径
        "cacheVariables": {
          "CMAKE_BUILD_TYPE": "Debug"
        },
        "condition": {
          "type": "equals",
          "lhs": "${hostSystemName}",
          "rhs": "Linux"
        },
        "vendor": {
          "microsoft.com/VisualStudioRemoteSettings/CMake/1.0": {
            //"sourceDir": "$env{HOME}/.vs/$ms{projectDirName}"
            "sourceDir": "/var/tmp" #本机代码复制到远程的目录 如果不设置默认用上一行的路径,也就似乎 ${HOME}下的.vs目录,此例中是改为了/var/tmp目录
          }
        }
      
  1. 远程运行
    编写代码判断平台类型,引入不同的头文件,运行不同的函数,以达到进程休眠的效果。
    windows平台可以使用windosw.h中的Sleep函数;
    linux平台可以使用unistd.h中的sleep函数。
    也可以使用c++11 中的休眠函数,以达到跨平台的效果,省去平台的判断。
    《C++跨平台通过宏定义判断当前操作系统windows,linux和编译器》
    宏定义确定系统
  2. 本地执行
    本地执行自是无需多言。
    本地项目也是通过cmake进行构建。
    cmake的掌握是关键。

猜你喜欢

转载自blog.csdn.net/sinat_36304757/article/details/124653732
今日推荐