当前位置: 首页 > article >正文

CMake在VS中使用远程调试

选中CMakeLists.txt, 右键-添加调试配置-选中"C\C++远程windows调试"

之后将 aunch.vs.json文件改为如下所示:

CMake在VS中使用远程调试时,Launch.vs.json中远程调试设置 ,远程电脑开启VS专用的RemoteDebugger

{"version": "0.2.1","defaults": {},"configurations": [{"type": "default","project": "CMakeLists.txt","projectTarget": "DmnCnc.exe (NcCoreQt\\Debug\\DmnCnc.exe)","name": "DmnCnc.exe (NcCoreQt\\Debug\\DmnCnc.exe)"},{"type_Explain": "远程模式, 指定项目是 dll 还是 exe(默认为 .exe)","type": "remoteWindows","authenticationType_Explain": "指定远程连接的类型,可能值为 windows 和 none。 默认值为 windows。 此值应与在远程计算机上运行的远程调试器上指定的身份验证设置相匹配,无身份验证时选none","authenticationType": "none","name_Explain": "指定“启动项”下拉列表中条目的名称,可以改成自己方便识别的名字","name": "DmnCnc-Remote","project_Explain": "指定项目文件的相对路径.通常调试CMake项目时不需要更改此值","project": "CMakeLists.txt","projectTarget_Explain": "指定生成 project 时调用的可选目标.目标必须与“启动项”下拉列表中的名称匹配(不能错,为本地的exe文件).","projectTarget": "DmnCnc.exe (NcCoreQt\\Debug\\DmnCnc.exe)","remoteMachineName_Explain": "指定启动程序的远程计算机的名称","remoteMachineName": "192.168.5.5:4026","cwd_Explain": "远程系统上将运行程序的目录的完整路径","cwd": "${debugInfo.defaultWorkingDirectory}","program_Explain": "远程计算机上的程序可执行文件的完整路径。使用CMake时,宏${debugInfo.fullTargetPath}可用作此字段的值.","program": "${debugInfo.fullTargetPath}","deploy_Explain": "指定要部署的额外文件或目录","deploy": [],"deployDirectory_Explain": "项目输出自动部署到的远程计算机上的位置.默认为C:\\Windows Default Deploy Directory\\<name of app>","deployDirectory": "D://Remote//Debug//","disableDeploy_Explain": "指定是否取消应部署文件,例如pdb调试文件","disableDeploy": false,"args_Explain": "传递给程序的命令行参数","args": [],"env": {}}]
}

在启动项中将出现DmnCnc-Remote的选择项,启动即可进行远程调试,注意需要将其他相关dll复制到远程exe同目录下.

具体可参数微软官网介绍:

教程:在远程 Windows 计算机上调试 CMake 项目 | Microsoft Learn

Launch.vs.json 架构参考 (C++) | Microsoft Learn

通过 CMake 安装和使用包 | Microsoft Learn

http://www.lryc.cn/news/2402419.html

相关文章:

  • 《图解技术体系》How Redis Architecture Evolves?
  • 从零搭建到 App Store 上架:跨平台开发者使用 Appuploader与其他工具的实战经验
  • Spring Cloud 2025 正式发布啦
  • 一文速通Python并行计算:12 Python多进程编程-进程池Pool
  • 相机Camera日志分析之二十五:高通相机Camx 基于预览1帧的process_capture_request四级日志分析详解
  • React从基础入门到高级实战:React 实战项目 - 项目一:在线待办事项应用
  • 云部署实战:基于AWS EC2/Aliyun ECS与GitHub Actions的CI/CD全流程指南
  • golang 如何定义一种能够与自身类型值进行比较的Interface
  • Web前端之原生表格动态复杂合并行、Vue
  • 『uniapp』把接口的内容下载为txt本地保存 / 读取本地保存的txt文件内容(详细图文注释)
  • C/C++ 面试复习笔记(2)
  • 宝马集团推进数字化转型:强化生产物流与财务流程,全面引入SAP现代架构
  • 【Redis技术进阶之路】「原理分析系列开篇」分析客户端和服务端网络诵信交互实现(服务端执行命令请求的过程 - 时间事件处理部分)
  • 【DAY40】训练和测试的规范写法
  • C语言 标准I/O函数全面指南
  • el-select 实现分页加载,切换也数滚回到顶部,自定义高度
  • Langchaine4j 流式输出 (6)
  • Jenkins:自动化流水线的基石,开启 DevOps 新时代
  • 学习经验分享【40】目标检测热力图制作
  • C#里与嵌入式系统W5500网络通讯(3)
  • 用OpenNI2获取奥比中光Astra Pro输出的深度图(win,linux arm64 x64平台)
  • Unity VR/MR开发-VR设备与适用场景分析
  • Linux: network: switch:arp cache更新规则 [chatGPT]
  • Java网络编程API 1
  • Android协程学习
  • Angular报错:cann‘t bind to ngClass since it is‘t a known property of div
  • uniapp+vue3实现CK通信协议(基于jjc-tcpTools)
  • Python爬虫实战:研究urlparse库相关技术
  • 解锁FastAPI与MongoDB聚合管道的性能奥秘
  • 软件工程方法论:在确定性与不确定性的永恒之舞中寻找平衡