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

13018.CUDA工程配置GDB调试

文章目录

  • 1 工程CMakeLists.txt
  • 2 vscode配置launch.json,settings.json,tasks.json文件

1 工程CMakeLists.txt

cmake_minimum_required(VERSION 3.8) # 根据你的CMake版本调整
# 设置项目名称
project(ez_compower_upward VERSION 0.1  LANGUAGES CXX CUDA)find_package(CUDA REQUIRED)
# 查找并链接需要的库,例如对于标准库之外的依赖
find_package(Threads REQUIRED) # 例如,如果需要链接线程库# 设置C++标准,这里使用C++14
set(CMAKE_CXX_STANDARD 14)
set(CMAKE_CXX_STANDARD_REQUIRED True)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -g")include_directories(${CMAKE_SOURCE_DIR}/config)
include_directories(${CMAKE_SOURCE_DIR}/interfaces)
include_directories(${CMAKE_SOURCE_DIR}/algorithm/point_process/include)
include_directories(${CMAKE_SOURCE_DIR}/algorithm/pixel_process/include)
include_directories(/usr/local/cuda/include)
# include_directories(${CMAKE_SOURCE_DIR}/interfaces/pixel_process/include)# 指定项目源文件
set(SOURCE_FILESmain.cpp#${CMAKE_SOURCE_DIR}/algorithm/point_process/src/point_read.cpp...${CMAKE_SOURCE_DIR}/algorithm/pixel_process/src/pixel_algo.cu
)message(STATUS "CMAKE_SOURCE_DIR: ${CMAKE_SOURCE_DIR}")
foreach(file ${SOURCE_FILES})message(STATUS "SOURCE_FILE: ${file}")
endforeach()# 添加可执行文件目标
CUDA_ADD_EXECUTABLE(ez_compower_app ${SOURCE_FILES}
)target_include_directories(ez_compower_app PRIVATE /usr/local/cuda/include)# 如果你的项目需要链接其他库,可以在这里添加,例如
target_link_libraries(ez_compower_app pthread pcap ${CUDA_LIBRARIES}) # 对应于Linux下的线程库# 或者针对特定库的链接命令,比如
# target_link_libraries(ez_compower_upward SomeThirdPartyLib)# 可选:设置编译选项,比如警告等级
if (${CMAKE_CXX_COMPILER_ID} STREQUAL "GNU")set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -Wextra -g")
endif()# 如果你的项目包含测试,可以使用CTest
enable_testing()
# 添加测试用例的示例
# add_test(NAME MyTest COMMAND MyTest)
# include(CTest)

2 vscode配置launch.json,settings.json,tasks.json文件

  • launch.json
{"version": "0.2.0","configurations": [{"name": "(gdb) CUDA Debug","type": "cppdbg","request": "launch","program": "${workspaceFolder}/build/ez_compower_app", // 调试程序的完整路径"args": [],"stopAtEntry": false,"cwd": "${workspaceFolder}", // 当前工作目录"environment": [],"externalConsole": false,"MIMode": "gdb","setupCommands": [{"description": "Enable pretty-printing for gdb","text": "-enable-pretty-printing","ignoreFailures": true}],"preLaunchTask": "build", // 构建任务,确保与tasks.json中定义的task label名称匹配"miDebuggerPath": "/usr/bin/gdb", // gdb的完整路径"internalConsoleOptions": "neverOpen"}]
}
  • tasks.json
{"version": "2.0.0","tasks": [{"label": "build","type": "shell","command": "make","args": [], // 如果你的Makefile中有默认目标,这里可以不填写参数"options": {"cwd": "${workspaceFolder}/build" // 这里指定了make应该在哪个目录下执行},"group": {"kind": "build","isDefault": true},"presentation": {"echo": true,"reveal": "always","focus": false,"panel": "shared","showReuseMessage": true,"clear": false},"problemMatcher": []}]
}
  • setting.json
{"files.associations": {"cctype": "cpp","clocale": "cpp","cmath": "cpp","csignal": "cpp","cstdarg": "cpp","cstddef": "cpp","cstdio": "cpp","cstdlib": "cpp","cstring": "cpp","ctime": "cpp","cwchar": "cpp","cwctype": "cpp","array": "cpp","atomic": "cpp","strstream": "cpp","*.tcc": "cpp","bitset": "cpp","chrono": "cpp","complex": "cpp","cstdint": "cpp","deque": "cpp","list": "cpp","unordered_map": "cpp","vector": "cpp","exception": "cpp","algorithm": "cpp","functional": "cpp","ratio": "cpp","system_error": "cpp","tuple": "cpp","type_traits": "cpp","fstream": "cpp","initializer_list": "cpp","iomanip": "cpp","iosfwd": "cpp","iostream": "cpp","istream": "cpp","limits": "cpp","memory": "cpp","mutex": "cpp","new": "cpp","ostream": "cpp","numeric": "cpp","sstream": "cpp","stdexcept": "cpp","streambuf": "cpp","thread": "cpp","cfenv": "cpp","cinttypes": "cpp","utility": "cpp","typeindex": "cpp","typeinfo": "cpp","valarray": "cpp","*.ipp": "cpp","string": "cpp","bit": "cpp","codecvt": "cpp","condition_variable": "cpp","map": "cpp","iterator": "cpp","memory_resource": "cpp","optional": "cpp","random": "cpp","string_view": "cpp","__nullptr": "cpp"}
}

相关文章:

  • 探索未来远程调试新纪元——《串口网口远程调试软件》:无缝连接,高效调试
  • 森林防火气象站:守护森林安全的科技利器
  • 【FFmpeg】avcodec_find_encoder和avcodec_find_decoder
  • 《mysql篇》--查询(进阶)
  • TCP: 传输控制协议
  • 双非本 985 硕,我马上要入职上海AI实验室大模型算法岗
  • 嵌入式实验---实验五 串口数据接收实验
  • Webpack: Loader开发 (1)
  • 基于正点原子FreeRTOS学习笔记——时间片调度实验
  • pdfmake不能设置表格边框颜色?
  • UnityShader SDF有向距离场简单实现
  • 走进IT的世界
  • 51单片机第23步_定时器1工作在模式0(13位定时器)
  • 【设计模式】【行为型模式】【责任链模式】
  • NAS—网络附加存储
  • dva中组件的懒加载
  • HTTP中GET与POST的区别 99%的错误认识
  • leetcode-27. Remove Element
  • nginx(二):进阶配置介绍--rewrite用法,压缩,https虚拟主机等
  • Objective-C 中关联引用的概念
  • Python语法速览与机器学习开发环境搭建
  • 编写高质量JavaScript代码之并发
  • 测试如何在敏捷团队中工作?
  • 从 Android Sample ApiDemos 中学习 android.animation API 的用法
  • 从0搭建SpringBoot的HelloWorld -- Java版本
  • 人脸识别最新开发经验demo
  • 事件委托的小应用
  • 它承受着该等级不该有的简单, leetcode 564 寻找最近的回文数
  • 用Python写一份独特的元宵节祝福
  • NLPIR智能语义技术让大数据挖掘更简单
  • 翻译 | The Principles of OOD 面向对象设计原则
  • #{} 和 ${}区别
  • #职场发展#其他
  • (1)无线电失控保护(二)
  • (2)关于RabbitMq 的 Topic Exchange 主题交换机
  • (C#)if (this == null)?你在逗我,this 怎么可能为 null!用 IL 编译和反编译看穿一切
  • (C语言)字符分类函数
  • (Note)C++中的继承方式
  • (收藏)Git和Repo扫盲——如何取得Android源代码
  • (一)UDP基本编程步骤
  • .NET 6 在已知拓扑路径的情况下使用 Dijkstra,A*算法搜索最短路径
  • .net core Swagger 过滤部分Api
  • .net 按比例显示图片的缩略图
  • .net 简单实现MD5
  • .NET 线程 Thread 进程 Process、线程池 pool、Invoke、begininvoke、异步回调
  • .NET开发不可不知、不可不用的辅助类(一)
  • .net连接MySQL的方法
  • .net实现客户区延伸至至非客户区
  • @cacheable 是否缓存成功_Spring Cache缓存注解
  • [ solr入门 ] - 利用solrJ进行检索
  • [\u4e00-\u9fa5] //匹配中文字符
  • [BJDCTF2020]The mystery of ip
  • [CentOs7]iptables防火墙安装与设置
  • [Codeforces] probabilities (R1600) Part.1
  • [DM复习]关联规则挖掘(下)