Debug经验
记录code中碰到的问题
RuiH.AI
学习ing
展开
-
Debug: yaml-cpp: error: ‘next’ is not a member of ‘boost’
比较新的boost包中可能出现找不到迭代器next方法,在。原创 2023-12-01 12:48:24 · 787 阅读 · 0 评论 -
CMakeLists.txt:打印find_package变量;判断库文件路径设定是否正确;install文件设置
安装目标文件:通过TARGETS关键字指定要安装的目标文件,并通过DESTINATION关键字指定目标文件的安装路径。这样,当我们使用make install命令时,构建生成的myapp可执行文件将被安装到bin目录下,myheader.h头文件将被安装到include目录下,而mydir目录及其下的文件将被安装到share/myapp目录下。在上面的示例中,install()命令指定了要安装的目标(即${EXECUTABLE_NAME})和目标的安装路径(即/usr/local/bin)。原创 2023-11-23 18:40:14 · 1772 阅读 · 0 评论 -
Debug报错:THC\THC.h: No such file or directory; pip从.git子文件夹中安装指定分支
编译Pointnet2.PyTorch仓库中的setup.py时报THC\THC.h: No such file or directory。原因是THC.h在pytorch 1.11版本中被移除了,需要修改代码。部分仓库中setup.py文件在子文件夹中,需要使用pip install 从子文件夹中直接安装某个分支。比如上面这个PointNet2.Pytorch仓库的setup.py在子文件夹。原创 2023-01-09 15:38:01 · 1396 阅读 · 2 评论 -
Debug报错:libORB_SLAM3.so: undefined symbol: _ZN5DBoW24FORB1LE
文件夹自带了一个DBoW2源码,编译ORBSLAM3会自动编译DBoW2,因此这个报错通常是系统路径下已经有了之前编译过的DBoW2造成的。一般而言,这是因为没找到DBoW2的动态库,或者库版本不一致。但是,因为DBoW2是SLAM常用的包,也可能是之前编译过DBoW2的包并且。,把在系统路径下的删掉就行了,但会导致其他使用该动态库的工程报错。到系统路径下,导致同名包冲突。然后重新编译整个工程就行了。ORBSLAM3工程文件的。修改ORB_SLAM3下的。原创 2022-12-13 14:36:34 · 1349 阅读 · 4 评论 -
CMakeLists学习三、指定OpenCV, PCL版本
本篇记录一下在CMakeLists.txt中指定OpenCV, PCL的版本(可以举一反三到其他包的版本指定上)首先需要明确CMakeLists的找包逻辑,可以参考find_package查找包,以及ld搜索链接库路径两篇博文。原创 2022-09-01 21:53:50 · 2811 阅读 · 0 评论 -
ROS报错:No module named ‘Cryptodome‘, sphinx指定使用python3编译
python3使用ROS的cv_bridgepip安装上面的包就行了。原创 2022-07-21 15:11:29 · 791 阅读 · 0 评论 -
Debug: defusedxml, CV_LOAD_IMAGE_UNCHANGED,CV_IMWRITE_JPEG_QUALITY,undistortPoints
错误日志1运行python报:解决方法就是有个python包没找到,装上就行:错误日志2为python3编译ros vision_opencv中的cv_bridge时,报:直接原因是编译器没找到opencv中这个常量的定义,根本原因是opencv4中把下面这些常量替换了:把上面的常量名换成opencv4的就行了错误日志3为python3编译ros image_pipeline时,报:其实原因和上面一样,常量名在opencv4中被替换了解决方法把换成,问题解决。错误日志4还是编译上面的r原创 2022-07-08 23:02:38 · 1742 阅读 · 0 评论 -
Ubuntu18 ft232驱动安装
使用ft232芯片把USB转TTL信号,需要先安装ft232的驱动。本篇记录Ubuntu下的ft232驱动安装。首先到FTDI公司官网上下载D2XX Drivers,选择Linux的1.4.24版本,下载得到libftd2xx-x86_64-1.4.24.tgz压缩包,解压缩。压缩包中有安装readme,但是是英文的,我这里直接给出步骤:完成以上操作后,驱动就应该正常安装了。将FT232转换头插到PC USB接口,然后:如果看到这样的端口,表示FT232驱动正常运行,就可以快乐的调试舵机啦。我发现,有的原创 2022-06-21 17:01:26 · 3633 阅读 · 1 评论 -
Debug: python报错 ‘time‘ has no attribute ‘clock‘
错误日志在python3.8中使用time包计时,报函数不存在:解决方法其实早在python3.3中time的clock模块就被废弃了,并且在python3.8中被彻底删除:用于返回当前的CPU时间,以达到计时的效果,使用方法类似于。现在可以使用来替换原先的,问题解决。...原创 2022-06-07 14:28:47 · 944 阅读 · 0 评论 -
Debug:nvcc fatal: Unsupported gpu architecture ‘compute_86‘; sm_86 is not compatible with Pytorch
Debug:nvcc fatal: Unsupported gpu architecture 'compute_86'问题描述1编译knn_cuda时,报了个错:nvcc fatal : Unsupported gpu architecture ‘compute_86‘意思是显卡算力太高,安装的cuda版本不支持(竟然还有这么神奇的错误),compute_86指显卡计算能力是8.6,RTX 30系,A系显卡都是这个算力。解决方法通过系统环境变量设置降低算力:export TORCH_CUDA原创 2022-05-13 13:29:23 · 2287 阅读 · 0 评论 -
Debug:libvtkRenderingPythonTkWidgets.so does not exist
Debug:libvtkRenderingPythonTkWidgets.so does not exist问题描述ubnuntu18用apt装完VTK后,其它工程中带了VTK库的,编译时会报上面这个警告Warning: libvtkRenderingPythonTkWidgets.so does not exist,或者是像下面这个长警告:The imported target "vtkRenderingPythonTkWidgets" references the file "/usr/li原创 2022-05-13 10:12:37 · 784 阅读 · 0 评论 -
Debug:‘boost::this_thread‘ has not been declared; undefined reference to ‘boost::this_thread...‘
Debug:'boost::this_thread' has not been declared; undefined reference to 'boost::this_thread...'今天解决两个C++编译工程时的BUG。问题1描述编译到某个.cpp文件时,报'boost::this_thread' has not been declared; ,这个很明显是这个.cpp文件没有找到boost库里的这个函数的问题。解决方法在该.cpp文件或者对应的.h文件中,添加下面的头文件引用:#in原创 2022-05-13 10:07:36 · 2545 阅读 · 0 评论 -
git:解决server certificate verification failed问题
git:解决server certificate verification failed问题git出现Certificate verification failed开发板apt update出现Certificate verification failedgit出现Certificate verification failed问题描述在使用镜像网站或者代理进行git clone时,可能出现ssl证书验证失败的问题:fatal: server certificate verification fail原创 2022-04-09 12:14:14 · 17823 阅读 · 0 评论 -
Debug:pytorch Warning: Error checking compiler version for cl: ‘utf-8‘ codec
报错日志:windows下使用python setup.py install包含pytorch组件时报:cpp_extension.py:237: UserWarning: Error checking compiler version for cl: 'utf-8' codec can't decode byte 0xd3 in position 0: invalid continuation byteLinux并不会报这个问题,推测应该是windows默认编码的问题。解决方法# 打开`cp原创 2022-03-14 10:41:15 · 6402 阅读 · 6 评论 -
gcc编译: -fpermissive选项
使用说明gcc编译时,可选择-fpermissive将报’error: [-fpermissive]'的错误转换成warning,但可能出现一些意想不到的错误原理-fpermissive会兼容一些老的语法,但这些语法在新标准中可能被禁用。原创 2022-02-17 18:35:59 · 7038 阅读 · 0 评论 -
Ubuntu:systemd的.service服务文件配置
Ubuntu:.service文件配置前言.service文件UnitServiceInstall前言之前在Jetson Nano配置中记录了通过服务开机自启动JupyterLab。本篇记录一下.service服务文件的配置方法。.service文件上篇提到,systemd将载入/etc/systemd/system/目录下的.service服务,一般而言其结构如下:[Unit]...[Service]...[Install]...其中,[Unit]设置该服务与其它服务的启动顺序和依原创 2022-02-05 22:57:55 · 12721 阅读 · 0 评论 -
Ubuntu:systemd 常用命令
Ubuntu:systemd 常用命令前言systemdsystemd命令组主命令systemctl系统相关服务相关主机命令hostnamectl时区命令timedatectl用户命令loginctl前言本篇记录Ubuntu18 systemd命令的使用。systemdUbuntu18版本开始,systemd被用于系统进程启动,d表示守护进程daemon,也就是系统后台运行的服务进程,取代了之前的initd。systemd命令组主命令systemctlsystemctl是最核心的命令,用于系统原创 2022-02-03 14:10:17 · 2241 阅读 · 0 评论 -
计算机网络 二、localhost、127.0.0.1,0.0.0.0
计算机网络 二、localhost、127.0.0.1,0.0.0.0localhost127.0.0.10.0.0.0localhostlocalhost是域名,在Ubuntu里默认指向127.0.0.1,但可以修改localhost指向的IP地址,位于/etc/hosts文件下:127.0.0.1 localhost127.0.0.1127.0.0.1是特殊的回环IP地址。回环网络(loopback)接口可以理解为虚拟网卡,用于本机各应用之间的网络交互,如果本机网络组件正常,就可以ping通原创 2022-02-02 16:32:47 · 2671 阅读 · 0 评论 -
计算机网络 一、 IP地址,域名,DNS
计算机网络 IP地址,域名,DNS前言IP地址域名DNS公网,局域网公网局域网前言本篇记录一下计算机网络中,域名,IP地址,DNS之间的关系。IP地址计算机之间相互通信需要知道对方的地址,IP地址用于标识设备网络地址信息,如百度IP地址为119.75.217.109域名因为IP地址是由数字组成,不好记忆,访问服务器或者网站不方便,因此就出现了域名,如。域名采用字符组成,如百度的域名www.baidu.com,每一个域名与一个IP地址对应。DNS互联网中,IP地址与域名是一一对应的(当然也有多原创 2022-02-02 00:49:14 · 1291 阅读 · 0 评论 -
Ubuntu:脚本首行/bin/bash意义
Ubuntu:脚本首行#!/bin/bash意义脚本运行解释/usr/bin/env的使用脚本运行解释在Ubuntu编写脚本时,需要在脚本首行指定脚本的解释器。比如shell脚本名为a.sh,首行为:#!/bin/bash则输入./a.sh时,使用/bin/bash运行脚本。类似的有:#!/usr/bin/python#!/usr/bin/python3使用python和python3解释脚本。/usr/bin/env的使用有时脚本首行是#!/usr/bin/env python原创 2022-01-31 18:28:34 · 2726 阅读 · 0 评论 -
Xshell6,XFTP:提示:要继续使用此程序,您必须应用最新的更新或使用新版本
Xshell6,XFTP:提示:要继续使用此程序,您必须应用最新的更新或使用新版本问题描述Notepad++ & HexEditor问题描述要用xshell6做ssh连接开发板,发现xshell和xftp都报错要更新,但已经是最新版了还在报错。在网上搜了一下解决方法,是使用二进制文件编辑器把xhsell和xftp下的nslicence.dll进行修改:# 查找7F 0C 81 F9 80 33 E1 01 0F 86 81# 把 86 替换为 83于是问题就变成了寻找二进制文件编辑器。有原创 2022-01-28 20:36:26 · 800 阅读 · 0 评论 -
ROS报错:warning: “deprecated pixel format used“
错误日志[swscaler @ 0x28dace0] deprecated pixel format used, make sure you did set range correctly报错原因上面这个错是使用ROS usb_cam包调用摄像头时出现的,错误日志写的很清楚了,就是使用的视频格式被废弃了。报错格式是mjpg,改成yuyv之后,问题解决。...原创 2022-01-24 15:17:48 · 1303 阅读 · 0 评论 -
gazebo报错: No such file or directory <sdf/sdf.hh>
错误日志编译gazebo_ros_pkgs时报找不到文件的错误:No such file or directory <sdf/sdf.hh>解决方法在~/.bashrc中设置gazebo头文件环境变量:export GAZEBO_INCLUDE_DIRS=$GAZEBO_INCLUDE_DIRS:/usr/include/sdformat-6.3问题解决。...原创 2022-01-18 14:24:03 · 2377 阅读 · 0 评论 -
CMakeLists学习二、链接库搜索路径与ld
CMakeLists学习二、链接库搜索路径与ld前言gcc的链接gcc链接命令ld搜索路径ldconfig刷新动态库缓存CMakeLists指定链接搜索路径后记前言本文继续CMakeLists相关学习,链接库的相关问题。gcc的链接gcc链接命令首先需要知道gcc编译时的链接指令:gcc -o helloworld helloworld.c -I/path_to_include -i xxx.h -L/path_to_lib -lxxx以上这行命令,-I/dir指定了gcc搜索头文件的路径,原创 2022-01-14 12:03:43 · 8247 阅读 · 2 评论 -
CMakeLists学习一、find_package查找包
CMakeLists学习一、find_package查找包前言引例环境变量find_package查询路径设定查询路径默认路径链接库问题find_package()命令前言很久之前就想写关于CMakeLists相关的学习记录,但当时的重点在数学基础内容上,这一块就搁置了,现在重新记录一下。首先就是cmake中查找第三方包指令find_package()的原理引例图像相关的工程中,最常用的第三方包OpenCV需要通过CMakeLists来配置,常见写法如下:find_package(OpenCV原创 2022-01-13 14:45:14 · 13244 阅读 · 2 评论 -
C++模板函数报错:undefined reference to ‘xxxxxxxxx‘
错误日志在写一个BA优化函数时,把模板函数的声明写在了.h中,定义在.cpp中,编译时报错:undefined reference to 'xxxxxx'xxxxxx是模板函数的名字。解决方法undefined reference这个报错太常见了,意思就是找不到这个函数的定义在哪。一般来说是因为链接库错误的原因。但是这个模板函数不一样,模板函数的声明和定义要放在一起,如果分开写在.h和.cpp中,.cpp文件中的定义就会被忽略掉,导致编译时,模板函数只有一个声明的壳而没有实体,编译器就会报找不原创 2022-01-06 16:21:26 · 3424 阅读 · 3 评论 -
Ceres: conversion from ‘double’ to non-scalar type ‘ceres::Jet<double, 6>’ requested
错误日志使用Ceres Solver,在定义CostFunction时,报错:error: conversion from ‘int’ to non-scalar type ‘ceres::Jet<double, 6>’ requested解决方法Ceres里,变量不是C++内置的double型,而是专属的Ceres::Jet型,因此需要将double强制转换为Ceres::Jet:template<typename T>T var = 0.; // error!T原创 2022-01-05 13:16:04 · 1886 阅读 · 0 评论 -
C++ std报错:error: ‘index_sequence‘ is not a member of ‘std‘
C++ std报错:error: 'index_sequence' is not a member of 'std'错误日志1SLAM十四讲中,编译带g2o库的文件时,报:error: 'index_sequence' is not a member of 'std'解决方法十四讲编译采用C++ 11,而最新的g2o库采用了C++ 14的特性。因此,解决方法很简单,在CMakeLists.txt里添加:set(CMAKE_CXX_STANDARD 14)就解决了错误日志2编译时报找不到原创 2022-01-04 14:42:33 · 3567 阅读 · 2 评论 -
ORB-SLAM2编译报错:Pangolin could not be found
错误日志Pangolin could not be found because dependency Eigen3 could not be found出现这个的原因,网上有的人说是Pangolin版本高了,回退回v0.5就行。解决方法我实际测试时发现,Pangolin这个库的master分支是开发分支,BUG比较多。ORB-SLAM2编译时选择稳定的release版本就行了,v0.6也行。sudo apt install libglew-devgit clone https://github原创 2021-12-22 19:54:52 · 1678 阅读 · 0 评论 -
ROS报错:PluginlibFactory: The plugin for class ‘octomap_rviz_plugin‘ failed to load
错误日志运行rtabmap稠密建图时,报一个插件错误未载入错误:PluginlibFactory: The plugin for class 'octomap_rviz_plugin' failed to load这种错误基本都是没装某个包出现的。解决方法sudo apt install --upgrade ros-melodic-octomap*...原创 2021-12-21 14:15:00 · 3023 阅读 · 0 评论 -
Ubuntu:配置VSCode remote ssh进行远程连接
VSCode remote ssh远程连接Step 1Step 2Step 3Step 4VSCode remote ssh连接服务器时的一个报错Step 1在VSCode插件栏搜索Remote-SSH,下载安装Step 2通过ssh-keygen为本地主机生成私钥和公钥,这个之前写过就不再重复了。生成的公钥存在本地的路径~/.ssh/中,假设公钥名为id_rsa.pubStep 3将本地公钥配置到服务器上,假设服务器ip为xxx.xxx.xxx.xxx:ssh-copy-id -i "~/原创 2021-12-11 16:37:37 · 1819 阅读 · 0 评论 -
Conda报错:conflict
报错提示The following specifications were found to be in conflict解决方法conda install xxx -c conda-forge原创 2021-12-09 20:27:36 · 487 阅读 · 0 评论 -
Nvidia-smi报错:failed to initialize NVML Driver/library version mismatch
问题记录启动gazebo发现报错:X Error of failed request: BadValue直觉告诉我这个应该是显卡出了问题然后测试了一下nvidia-smi,报错:failed to initialize NVML Driver/library version mismatch问题解决看了其它博客里写是因为显卡驱动与内核的版本不符,需要重新装显卡驱动。但是我先重启了电脑,然后问题就解决了,不需要重装驱动。...原创 2021-12-02 16:50:43 · 1001 阅读 · 0 评论 -
Ubuntu分卷文件压缩解压
问题描述有的数据集非常大,几百个G,存在网盘里只能分卷存储,在ubuntu上下载需要解压。解决方法使用p7zip-fullsudo apt install p7zip-full# 压缩,a表示压缩,-v1000m表示各分卷最大1G7z a file.7z filename -v1000m# 解压,x表示解压,-r表示递归,-o表示解压到的位置7z x -r file.7z.001 -o./data...原创 2021-10-29 20:10:23 · 1178 阅读 · 1 评论 -
ROS报错:Could not import “pyqt“ bindings of qt_gui_cpp library
错误日志使用ros rqt可视化时报:Could not import "pyqt" bindings of qt_gui_cpp library错误原因可能是pyqt版本较老或者没装。pip install pydot pyqt5问题解决原创 2021-10-04 20:20:28 · 1950 阅读 · 0 评论 -
ROS catkin编译ompl相关包报错:ompl/base/··· : No such file or directory.
错误日志ompl/base/objectives/PathLengthOptimizationObjective.h : No such file or directory报错原因这个是经典的cmake找不到相关包导致的错误,cmake没找到ROS的ompl包解决方法首先安装一下ROS ompl包:sudo apt install ros-melodic-ompl确认安装好后,尝试再编译一下之前报错的代码,如果还报错,那就可能是由于ompl装的位置问题,先找一下ompl的位置:sud原创 2021-09-29 15:34:33 · 2369 阅读 · 4 评论 -
Linux文件权限命令chmod
linux文件权限在linux下,文件用户分三种:文件所有人、用户组和其他用户文件权限分三种:读取,写入,执行chmod可以改变不同用户的文件使用权限(chmod: change mode)chmod改变文件权限chmod有两种模式:符号模式与数字模式符号模式通过字符设定用户权限,参数格式为 用户类型+操作+权限,使用如下:# 给所有用户添加读写执行权限sudo chmod a=rwx file.txt# 给其他用户添加执行权限sudo chmod o+x file.txtu,g原创 2021-09-23 21:55:27 · 1360 阅读 · 0 评论 -
Ubuntu添加新分区,挂载硬盘到/home下
Ubuntu添加新分区前言Gparted添加新分区Ubuntu挂载分区到/home下自动挂载硬盘前言我的电脑有固态和机械两个硬盘,win10和Ubuntu系统都装在固态硬盘中,而机械硬盘还没有分配给任何一个系统。现在需要将机械硬盘中分出一半给Ubuntu系统存储数据,因此采用gparted进行分区,再挂载硬盘。Gparted添加新分区有很多博客是用fdisk来进行分区,不过我觉得gparted的gui界面很友好,操作更简洁。sudo apt install gpartedsudo gparte原创 2021-09-13 20:52:08 · 5625 阅读 · 0 评论 -
Conda报错:Conflict包冲突
错误日志The following specifications were found to be in conflictanaconda里的包出现conflict其实是比较常见的问题问题解决conda install -c conda-forge pytorch=1.9 torchvision cudatoolkit=10.2采用conda-forge的包就不会出现冲突了。...原创 2021-09-08 20:55:59 · 6549 阅读 · 0 评论 -
Linux命令:tar压缩/解压包, zip/unzip
tar压缩/解压功能描述Linux中的tar命令,是解压或者压缩文件使用方法解压:tar -xzvf file.tar.gz压缩:tar -czvf file.tar.gz file/参数说明# 第一个参数可使用解压,压缩,查看文件,但是命令中不能共存-x 解压 -c 压缩 -t 查看# 压缩格式-z gzip格式-j bzip2格式# 常用参数-v 解压/压缩时,显示文件# 最后一个参数,后面必须接包名-f 解压/压缩包名举例:tar -xzvf file.原创 2021-09-07 10:02:41 · 1621 阅读 · 0 评论