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

linux下Cmake和vscode的配置

C 环境安装: sudo apt update sudo apt install build-essential gdb sudo apt install cmake gcc --version g --version gdb --version cmake --version C/C Themes CMake 写CMakeLists.txt能提示{ // 使用 IntelliSense 了解相关属性。 // 悬停以查看现有属性的描述。 // 欲了解更多信息请访问: https://go.microsoft.com/fwlink/?linkid830387 version: 0.2.0, configurations: [ { name: C Launch, type: cppdbg, request: launch, # 要调试的文件路径 program: /home/lgc/demo/07_calib/OpenCalib-master/lidar2camera/manual_calib/bin/run_lidar2camera, // 编译后的可执行文件 // 要调试的参数 args: [data/0.png,data/0.pcd,data/center_camera-intrinsic.json,data/top_center_lidar-to-center_camera-extrinsic.json], // stopAtEntry: false, //先切换到什么路径与参数有关 cwd: ${workspaceFolder}/lidar2camera/manual_calib, environment: [], externalConsole: false, MIMode: gdb, miDebuggerPath: /usr/bin/gdb, setupCommands: [ { description: Enable pretty-printing for gdb, text: -enable-pretty-printing, ignoreFailures: true } ], //preLaunchTask: build //如果不用编译,可以不要 } ] }task.josn { version: 2.0.0, options: { cwd: ${workspaceFolder}/build //需要进入到我们执行tasks任务的文件夹中 }, tasks: [ //tasks包含三个小任务 { type: shell, label: cmake, //第一个任务的名字叫cmake command: cmake, //它要执行的命令是cmake args: [ -DCMAKE_BUILD_TYPEDebug, .. //参数是.. ] }, { type: shell, label: make, //第二个任务的名字叫make group: { kind: build, isDefault: true }, command: make, //它要执行的命令是make args: [], options: { cwd: ${workspaceFolder}/build, }, }, { label: build, //第三个任务的名字叫build dependsOrder: sequence, //顺序执行依赖项 dependsOn:[ //依赖的两个项为cmake和make cmake, //即第一个任务的label make //即第二个任务的label ] } ] }setting.json:要调试的cmake文件 { cmake.sourceDirectory: /home/lgc/demo/07_calib/OpenCalib-master/lidar2camera/manual_calib // 整体界面缩放相当于 Ctrl/- 的效果 window.zoomLevel: 1.5, // 可选单独调整编辑器字体 editor.fontSize: 20, // 可选调整终端字体 terminal.integrated.fontSize: 15 }终端--运行生成任务--生成tasks.json ,主要是减少cmake指令 { version: 2.0.0, tasks: [ // 1. cmake 配置 { type: shell, label: CMake: 配置, command: cmake, args: [ -S, ${workspaceFolder}, -B, ${workspaceFolder}/build, -DCMAKE_BUILD_TYPEDebug ], problemMatcher: $msCompile, group: { kind: build, isDefault: true }, options: { cwd: ${workspaceFolder} } }, // 2. cmake 构建 { type: shell, label: CMake: 构建, command: cmake, args: [ --build, ${workspaceFolder}/build ], problemMatcher: $msCompile, group: { kind: build, isDefault: true }, options: { cwd: ${workspaceFolder} }, dependsOn: [ CMake: 配置 ] }, // 3. 删除Build目录 { type: shell, label: 删除Build目录, command: rm, args: [ -rf, build ], problemMatcher: $msCompile, group: { kind: build, isDefault: true }, options: { cwd: ${workspaceFolder} } }, // 4. 运行可执行文件 { type: shell, label: 运行可执行文件, command: ./Build/main, problemMatcher: $msCompile, group: { kind: build, isDefault: true }, options: { cwd: ${workspaceFolder} }, dependsOn: [ CMake: 构建 ] } ] }launch.json #可以用which gdb 查看dgb的路径 gdb --version 查看gdb的版本 点CMake Configure即可调试CMakeLists.txt文件还要安装CMake Tools工具 { // 使用 IntelliSense 了解相关属性。 // 悬停以查看现有属性的描述。 // 欲了解更多信息请访问: https://go.microsoft.com/fwlink/?linkid830387 version: 0.2.0, configurations: [ { name: C CMake Debug, type: cppdbg, request: launch, program: ${workspaceFolder}/Build/${fileBasenameNoExtension}, // 编译后的程序需要结合CMakeLists.txt中的add_executable()函数 args: [], stopAtEntry: false, cwd: ${workspaceFolder}, environment: [], externalConsole: false, MIMode: gdb, miDebuggerPath: /usr/bin/gdb, setupCommands: [ { description: Enable pretty-printing for gdb, text: -enable-pretty-printing, ignoreFailures: true } ], preLaunchTask: CMake: 构建 },{ name: CMake Debug, type: cmake, request: launch, scriptPath: /home/standard/yolo/ncnn/CMakeLists.txt, cmakeDebugType: script, }, { name: CMake Configure, type: cmake, request: launch, cmakeDebugType: configure } ] }c_cpp_properties.json vscode调试时查找头文件的路径 { configurations: [ { name: Linux, includePath: [ ${workspaceFolder}/**, /usr/include/opencv4 ], defines: [], compilerPath: /usr/bin/gcc, cStandard: gnu17, cppStandard: gnu14, intelliSenseMode: linux-gcc-x64 } ], version: 4 }如何断点调试CMakeLists.txt文件参考文档:https://github.com/microsoft/vscode-cmake-tools/blob/51b7ced409a4e0e26c036d4284d5077cbad66318/docs/debug.md1、首先安装cmake tools,cmake的版本版本必须大于3.272、launch.json中填写{ version: 0.2.0, configurations: [ { type: cmake, request: launch, name: Debug CMake Configure (yolov8), cmakeDebugType: configure, clean: true, configureAll: false } ] }3、设置settings.json{ cmake.sourceDirectory: ${workspaceFolder}/examples/yolov8/cpp, cmake.buildDirectory: ${workspaceFolder}/build/cmake-debug/yolov8-rk3588, cmake.generator: Unix Makefiles, cmake.configureArgs: [ -DTARGET_SOCrk3588, -DCMAKE_SYSTEM_NAMELinux, -DCMAKE_SYSTEM_PROCESSORaarch64, -DCMAKE_BUILD_TYPERelease, -DENABLE_ASANOFF, -DDISABLE_RGAOFF, -DDISABLE_LIBJPEGOFF, -DCMAKE_INSTALL_PREFIX${workspaceFolder}/install/rk3588_linux_aarch64/rknn_yolov8_demo ] } 这些项的原理 cmake.sourceDirectory 指定真正包含 CMakeLists.txt 的源码目录。因为 rknn_model_zoo 根目录不是直接构建 yolov8而是它下面的 examples/yolov8/cpp。 cmake.buildDirectory 指定构建输出目录。这样不会把中间文件散落到源码目录。 cmake.generator 指定生成器这里是 Unix Makefiles所以后面通常走 make。 cmake.configureArgs 这就是你手敲命令时 -Dxxxyyy 的图形化版本。CMake Tools 点“配置”时会自动把这些参数带上。 一句话理解这份 settings.json 是在告诉 VSCode/Cursor“如果你帮我跑 cmake请按这套参数跑”。4、点CMake Configure即可断点调试CmakeLists.txt文件

相关文章:

linux下Cmake和vscode的配置

C 环境安装:sudo apt update sudo apt install build-essential gdb sudo apt install cmakegcc --version g --version gdb --version cmake --versionC/C Themes CMake 写CMakeLists.txt能提示 {// 使用 IntelliSense 了解相关属性。 // 悬停以查看现有属性的描述。// 欲了…...

深入解析Dify的RAG文件处理流程:从上传到索引构建

1. Dify平台RAG文件处理流程全景图 当你把一份PDF或Word文档拖进Dify平台时,背后其实启动了一个精密的文档处理流水线。这个流程就像快递分拣中心的自动化系统——文件先被拆包验货,然后按规则分拣,最后贴上专属标签存入智能货架。作为开发者…...

如何用稳定扩散阿卡西记录释放AI绘画的无限潜能:完整指南

如何用稳定扩散阿卡西记录释放AI绘画的无限潜能:完整指南 【免费下载链接】sd-akashic 项目地址: https://gitcode.com/gh_mirrors/sd/sd-akashic 稳定扩散阿卡西记录(sd-akashic)是一个强大的开源项目,它为AI绘画爱好者和…...

Qwen3-TTS-12Hz-1.7B-VoiceDesign C++接口开发:高性能语音合成引擎封装

Qwen3-TTS-12Hz-1.7B-VoiceDesign C接口开发:高性能语音合成引擎封装 1. 引言 语音合成技术正在快速发展,而Qwen3-TTS-12Hz-1.7B-VoiceDesign作为阿里云推出的先进语音生成模型,为开发者提供了强大的声音设计和控制能力。虽然官方提供了Pyt…...

小白也能搞定的AI换脸:科哥UNet镜像快速上手,效果超自然

小白也能搞定的AI换脸:科哥UNet镜像快速上手,效果超自然 1. 引言:AI换脸原来这么简单 你是否曾经想过把自己的脸放到喜欢的电影角色上?或者想看看自己换个发型、妆容会是什么样子?现在,这些想法都可以通过…...

Tufte CSS终极字体配置指南:ET Book字体的完整使用方法详解

Tufte CSS终极字体配置指南:ET Book字体的完整使用方法详解 【免费下载链接】tufte-css Style your webpage like Edward Tufte’s handouts. 项目地址: https://gitcode.com/gh_mirrors/tu/tufte-css 想要为你的网站实现Edward Tufte标志性的优雅排版吗&…...

手把手教你用YOLO-v8.3:从零搭建零售货架识别系统

手把手教你用YOLO-v8.3:从零搭建零售货架识别系统 1. 项目背景与价值 零售行业每天面临着一个共同的挑战:如何高效准确地管理货架商品。传统的人工盘点方式不仅耗时费力,而且容易出错。想象一下,一家中型超市每天需要花费3-4小时…...

scikit-opt免疫算法终极指南:生物启发式优化原理与实战应用

scikit-opt免疫算法终极指南:生物启发式优化原理与实战应用 【免费下载链接】scikit-opt Genetic Algorithm, Particle Swarm Optimization, Simulated Annealing, Ant Colony Optimization Algorithm,Immune Algorithm, Artificial Fish Swarm Algorithm, Differen…...

SpringBoot 集成 TrueLicense 实现动态许可证管理与安全验证

1. TrueLicense基础与SpringBoot集成概述 在商业软件开发中,许可证管理是保护知识产权的关键环节。TrueLicense作为Java生态中成熟的证书管理框架,通过非对称加密技术实现软件授权验证。我曾在多个企业级项目中采用SpringBoot集成TrueLicense的方案&…...

C#毕业设计下载(全套源码+配套论文)——基于C#+asp.net+sqlserver的教务管理平台设计与实现

基于C#asp.netsqlserver的教务管理平台设计与实现(毕业论文程序源码) 大家好,今天给大家介绍基于C#asp.netsqlserver的教务管理平台设计与实现,更多精选毕业设计项目实例见文末哦。 文章目录: 基于C#asp.netsqlserve…...

如何快速解决Spyc YAML解析器的10个常见问题:PHP开发者的完整指南

如何快速解决Spyc YAML解析器的10个常见问题:PHP开发者的完整指南 【免费下载链接】spyc A simple YAML loader/dumper class for PHP 项目地址: https://gitcode.com/gh_mirrors/sp/spyc Spyc是一个简单易用的PHP YAML加载器/转储器类,专为处理Y…...

Freetronics LCD库深度解析与STM32移植指南

1. Freetronics 162 LCD 库技术解析与工程实践指南Freetronics 162 LCD Shield 是一款面向 Arduino 生态的硬件扩展板,采用 HD44780 兼容控制器驱动双行 16 字符液晶显示屏,并集成 5 按键(上、下、左、右、选择)与电位器调光电路。…...

企业微信直播回放下载全攻略:从网页源码到火狐插件,手把手教你搞定

企业微信直播回放高效下载指南:多平台解决方案与实战技巧 企业微信作为职场沟通的重要工具,其直播功能被广泛应用于内部培训、会议记录和在线教学等场景。但官方并未直接提供直播回放的下载入口,这让许多需要存档重要内容的用户感到困扰。本…...

从波形图解密AHB协议:手把手分析INCR4/WRAP8突发传输时序

从波形图解密AHB协议:手把手分析INCR4/WRAP8突发传输时序 在数字IC验证领域,AHB协议作为AMBA总线家族的核心成员,其突发传输机制一直是工程师必须掌握的硬核技能。本文将带您以"示波器视角"切入,通过INCR4递增突发和WRA…...

modern-normalize样式覆盖优先级终极指南:避免CSS冲突的10个技巧

modern-normalize样式覆盖优先级终极指南:避免CSS冲突的10个技巧 【免费下载链接】modern-normalize 🐒 Normalize browsers default style 项目地址: https://gitcode.com/gh_mirrors/mo/modern-normalize modern-normalize是一款轻量级的CSS重置…...

Python最好用的爬虫框架推荐!

Python爬虫框架能大幅降低数据采集的开发成本,不同框架适配不同的爬取场景。很多开发者入门时不知该选哪个框架,本文推荐8个最高效的Python爬虫框架,快来了解一下吧。1.ScrapyScrapy是一个为了爬取网站数据,提取结构性数据而编写的…...

深度实践指南:如何高效使用DataHub GraphQL进行元数据管理

深度实践指南:如何高效使用DataHub GraphQL进行元数据管理 【免费下载链接】datahub The Metadata Platform for the Modern Data Stack 项目地址: https://gitcode.com/GitHub_Trending/da/datahub DataHub是现代数据栈的元数据平台,其GraphQL A…...

TradingAgents-CN:三步打造你的专属AI金融交易军师

TradingAgents-CN:三步打造你的专属AI金融交易军师 【免费下载链接】TradingAgents-CN 基于多智能体LLM的中文金融交易框架 - TradingAgents中文增强版 项目地址: https://gitcode.com/GitHub_Trending/tr/TradingAgents-CN 想象一下,你面对复杂的…...

深度学习迁移学习实战指南:基于SqueezeNet的热狗识别系统

深度学习迁移学习实战指南:基于SqueezeNet的热狗识别系统 【免费下载链接】mxnet-the-straight-dope An interactive book on deep learning. Much easy, so MXNet. Wow. [Straight Dope is growing up] ---> Much of this content has been incorporated into t…...

Apollo监听器用不好?从源码看ConfigChangeListener的注册、触发与线程安全那些事

Apollo监听器深度解析:从源码透视ConfigChangeListener的设计哲学与实战陷阱 在分布式配置中心领域,Apollo凭借其高可靠性、实时推送能力和完善的监听机制,已成为众多企业微服务架构中的标配组件。然而,许多中高级开发者在实际使用…...

别再只会写RCA了!FPGA实战:用Verilog手撕超前进位加法器(LCA)的完整代码与性能对比

从RCA到LCA:FPGA工程师必备的超前进位加法器实战指南 在数字电路设计中,加法器是最基础却又最关键的运算单元之一。很多刚接触Verilog的工程师会满足于实现一个能用的行波进位加法器(RCA),但当项目频率提升到200MHz以上…...

基于微信小程序实现助农扶贫管理系统【附项目源码+论文说明】计算机毕业设计

基于java和微信小程序实现助农扶贫系统演示【内附项目源码LW说明】摘要 由于APP软件在开发以及运营上面所需成本较高,而用户手机需要安装各种APP软件,因此占用用户过多的手机存储空间,导致用户手机运行缓慢,体验度比较差&#xf…...

别再只盯着开关速度了!用TC4420驱动MOSFET,实测这几种波形才是效率杀手

别再只盯着开关速度了!用TC4420驱动MOSFET,实测这几种波形才是效率杀手 在实验室调试电源模块时,你是否遇到过这样的场景:明明选用了低导通电阻的MOSFET,计算出的理论效率高达95%,但实测却始终徘徊在88%左右…...

戴尔服务器按Ctrl+R没反应?别急,先检查BIOS里的这个Boot Mode设置

戴尔服务器CtrlR失效深度排查:从Boot Mode到RAID配置的完整指南 当戴尔服务器的CtrlR组合键失去响应时,许多运维人员的第一反应是反复尝试或怀疑硬件故障。但真相往往藏在更深层的系统配置中——UEFI与Legacy BIOS启动模式的差异直接决定了RAID配置入口…...

Python实战:3种方法加速破解RAR密码(附完整代码)

Python高效破解RAR密码的3种实战方案 当遇到加密的RAR文件却忘记密码时,许多开发者会寻求自动化破解方案。传统暴力破解方法效率低下,本文将分享三种经过优化的Python实现方案,帮助你在不同场景下快速完成任务。 1. 基础准备与环境配置 在开始…...

老显卡如何焕发第二春?OptiScaler让游戏帧率提升30-50%的实战指南

老显卡如何焕发第二春?OptiScaler让游戏帧率提升30-50%的实战指南 【免费下载链接】OptiScaler DLSS replacement for AMD/Intel/Nvidia cards with multiple upscalers (XeSS/FSR2/DLSS) 项目地址: https://gitcode.com/GitHub_Trending/op/OptiScaler 当你…...

从Alpha158因子库的实战计算到高效缓存策略

1. Alpha158因子库的核心价值与计算挑战 在量化金融领域,因子库的质量直接决定了策略的盈利能力。微软Qlib框架内置的Alpha158因子库,包含了158个经过验证的量化因子,覆盖了量价、财务、市场情绪等多个维度。这些因子就像厨师手中的调味料&am…...

利用EVA-02重构技术文档:将零散笔记整理成结构化开发手册

利用EVA-02重构技术文档:将零散笔记整理成结构化开发手册 你有没有过这样的经历?项目进行到一半,想回顾一下某个功能的实现细节,结果发现相关的信息散落在十几个不同的地方:几行代码注释在一个文件里,关键…...

终极指南:如何为Dinero.js开源货币库贡献专业文档

终极指南:如何为Dinero.js开源货币库贡献专业文档 【免费下载链接】dinero.js Create, calculate, and format money in JavaScript and TypeScript. 项目地址: https://gitcode.com/gh_mirrors/di/dinero.js Dinero.js是一个功能强大的JavaScript和TypeScri…...

TensorFlow文本距离计算终极指南:编辑距离与地址匹配实战

TensorFlow文本距离计算终极指南:编辑距离与地址匹配实战 【免费下载链接】tensorflow_cookbook Code for Tensorflow Machine Learning Cookbook 项目地址: https://gitcode.com/gh_mirrors/te/tensorflow_cookbook TensorFlow文本距离计算是自然语言处理和…...