前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Caffe - Clion 调试 C++ 源码简单使用

Caffe - Clion 调试 C++ 源码简单使用

作者头像
AIHGF
发布2019-02-18 10:34:18
2.8K0
发布2019-02-18 10:34:18
举报
文章被收录于专栏:AIUAI

Clion 调试 Caffe C++ 源码

环境:Ubuntu14.04,Caffe,Clion2017.2

1. Clion - Ubuntu 安装

  • 官网下载 Clion 的 .tar.gz 压缩包 Clion-Linux
  • 解压压缩包到当前文件夹 tar -zxvf Clion-2017.2.3.tar.gz
  • 运行安装脚本 cd Clion-2017.2.3 ./bin/clion.sh 根据提示进行安装,创建快捷方式.

2. Clion 调试 Caffe C++ 源码

  • 编译 caffe-master
  • 用 Clion 打开编译后的 caffe-master
  • 配置参数:
    • 在右上角配置
    这里写图片描述
    这里写图片描述
    • 参考设置: 主要是 Executable, Program arguments 和 Working directory 的配置. Apply 应用配置.
    这里写图片描述
    这里写图片描述
  • 设置断点 根据情况,打开需要调试的代码文件,点击相应的代码行左边,设置断点(红色实心圆).
  • 开始调试 点击 Clion 右上角配置旁的蜘蛛状绿色图标,开始调试. ​ 快捷键: F5 - 运行到断点 F10 - 单步运行

2.1 查看数据

gdb print 命令可以显示被调试的语言中任何有效的表达式.

可以检查各个变量的值:

代码语言:javascript
复制
(gdb) print p (p为变量名)

对程序中函数的调用:

代码语言:javascript
复制
(gdb) print find_entry(1,0)

数据结构和其他复杂对象:

代码语言:javascript
复制
(gdb) print *table_start$8={e=reference=’\000’,location=0x0,next=0x0}

值的历史成分:

代码语言:javascript
复制
(gdb)print $1 ($1为历史记录变量,在以后可以直接引用 $1 的值)

whatis 命令可以显示某个变量的类型:

代码语言:javascript
复制
(gdb) whatis ptype = int *

3. 问题解决

3.1 调试出现提示cannot find -lopencv_dep_cudart

解决方案

  • 点击 CMake —— 左边的设置(绿色齿轮图标) —— 选CMake Settings:
这里写图片描述
这里写图片描述
  • 在 Build, Execution, Deployment 设置下的 CMake 页面的 CMake options 处添加参数 -DCUDA_USE_STATIC_CUDA_RUNTIME=OFF,如下:
这里写图片描述
这里写图片描述
  • 设置完成后,reload一下 cmake 项目,即可编译通过.

3.2 问题: undefined reference to `cv::applyColorMap(cv::_InputArray const&, cv::_OutputArray const&, int)’

解决方案: 修改 caffe_root/cmake/Dependencies.cmake,添加 contrib:

代码语言:javascript
复制
# ---[ OpenCV
if(USE_OPENCV)
  find_package(OpenCV QUIET COMPONENTS core highgui imgproc imgcodecs contrib)
  if(NOT OpenCV_FOUND) # if not OpenCV 3.x, then imgcodecs are not found
    find_package(OpenCV REQUIRED COMPONENTS core highgui imgproc)
  endif()

3.3 undefined reference to `H5LTget_dataset_ndims’

解决方案: 修改 caffe_root/cmake/Dependencies.cmake,添加

代码语言:javascript
复制
# ---[ HDF5
find_package(HDF5 COMPONENTS HL REQUIRED)
include_directories(SYSTEM ${HDF5_INCLUDE_DIRS} ${HDF5_HL_INCLUDE_DIR})
list(APPEND Caffe_LINKER_LIBS ${HDF5_LIBRARIES})
list(APPEND Caffe_LINKER_LIBS ${HDF5_HL_LIBRARIES}) #added

参考

[1] - clion下调试caffe出现提示cannot find -lopencv_dep_cudart

[2] - Linux下Caffe如何调试

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2017年11月22日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • Clion 调试 Caffe C++ 源码
    • 1. Clion - Ubuntu 安装
      • 2. Clion 调试 Caffe C++ 源码
        • 2.1 查看数据
      • 3. 问题解决
        • 3.1 调试出现提示cannot find -lopencv_dep_cudart
        • 3.2 问题: undefined reference to `cv::applyColorMap(cv::_InputArray const&, cv::_OutputArray const&, int)’
        • 3.3 undefined reference to `H5LTget_dataset_ndims’
      • 参考
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档