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

vscode+CMake+Debug实现 及权限不足等诸多问题汇总

环境说明

有空再补充

直接贴两个json

tasks.json

{"version": "2.0.0","tasks": [{"label": "cmake","type": "shell","command": "cmake","args": ["../"],"options": {"cwd": "${fileDirname}/../build"},            },{"label": "make","type": "shell","command": "make","args": [],"options": {"cwd": "${fileDirname}/../build"}, },{"label": "build","dependsOn":["cmake", "make"]},],
}

为了防止出错,“cwd”: "${fileDirname}/…/build"建议写绝对地址,我的src和build是分开的,大家的不一定和我一样

launch.json

{"version": "0.2.0","configurations": [{"name": "g++ - Build and debug active file","type": "cppdbg","request": "launch","program": "${fileDirname}/../lib/${fileBasenameNoExtension}","args": ["para1", "para2"],"stopAtEntry": false,"cwd": "${fileDirname}","environment": [{"name": "LD_LIBRARY_PATH","value": "${workspaceFolder}/lib:$LD_LIBRARY_PATH"}],"externalConsole": false,"MIMode": "gdb","setupCommands": [{"description": "Enable pretty-printing for gdb","text": "-enable-pretty-printing","ignoreFailures": true}],"preLaunchTask": "build",// "miDebuggerPath": "/usr/bin/gdb""miDebuggerPath": "/home/USERID/Desktop/aheadform/wukong_large/Proj_01/run.sh"}]
}
  • 注意事项
  1. 使用"miDebuggerPath": "/usr/bin/gdb"可能会导致某些接口没有足够权限调用,或者每次需要输入密码的情况发生,故这里改成了 “miDebuggerPath”: “/home/USERID/Desktop/aheadform/xxxx/Proj_01/run.sh”,用一个脚本间接启动gdb,注意这里填脚本的地址,脚本放哪里都行
    #!/bin/bashexec sudo /usr/bin/gdb "$@"
    
    在创建完脚本后,要用
    sudo chmod + x 脚本.sh
    //或者
    sudo chmod 777 脚本.sh
    
    为脚本赋予执行权限
  2. 编译时,可能会出现某某环境变量找不到的现象,"environment"就是用来解决这个的,哪个环境变量找不到,就把它塞进"environment"里,按照
    		{"name": "LD_LIBRARY_PATH","value": "${workspaceFolder}/lib:$LD_LIBRARY_PATH"}
    
    的格式添加需要的环境变量,比如我这里就是LD_LIBRARY_PATH找不到(编译时报错提示电脑不认识.so库的路径)
  3. "program"的值是make生成的可执行文件的路径,不要被我这里误导了,我只是这个工程的环境依赖有点问题,所以生成到lib下面了,如果有同学和我这个奇葩工程一样的,记得修改这一项
http://www.lryc.cn/news/533472.html

相关文章:

  • 【提示词工程】探索大语言模型的参数设置:优化提示词交互的技巧
  • 基于 .NET 8.0 gRPC通讯架构设计讲解,客户端+服务端
  • 6.Centos7上部署flask+SQLAlchemy+python+达梦数据库
  • 【C语言系列】深入理解指针(5)
  • mysql自连接 处理层次结构数据
  • ##__VA_ARGS__有什么作用
  • 鸿蒙 router.back()返回不到上个页面
  • 深度学习模型蒸馏技术的发展与应用
  • STM32G0B1 ADC DMA normal
  • <tauri><rust><GUI>基于rust和tauri,在已有的前端框架上手动集成tauri示例
  • 模型 冗余系统(系统科学)
  • Deepseek部署的模型参数要求
  • AI-学习路线图-PyTorch-我是土堆
  • [LeetCode]day17 349.两个数组的交集
  • axios 发起 post请求 json 需要传入数据格式
  • linux交叉编译paho-mqtt-c
  • feign Api接口中注解问题:not annotated with HTTP method type (ex. GET, POST)
  • 安装指定版本的pnpm
  • 【系统设计】Spring、SpringMVC 与 Spring Boot 技术选型指南:人群、场景与实战建议
  • 常用数据结构之String字符串
  • 深入Linux系列之进程地址空间
  • HAL库外设宝典:基于CubeMX的STM32开发手册(持续更新)
  • 网络安全-HSTS
  • 全程Kali linux---CTFshow misc入门(38-50)
  • HarmonyOS:时间日期国际化
  • 使用miniforge代替miniconda
  • LIMO:少即是多的推理
  • 【玩转 Postman 接口测试与开发2_018】第14章:利用 Postman 初探 API 安全测试
  • 如何编写测试用例
  • 复原IP地址(力扣93)