ubuntu20.04复现 Leg-KILO

ops/2024/12/15 8:28:28/

这里写目录标题

  • opencv版本问题
    • 下载3.2.0源代码
    • 进入解压后的目录
    • 创建构建目录
    • 运行 CMake 配置 配置时指定一个独立的安装目录,例如 /opt/opencv-3.2:
      • 出错:
    • 使用多线程编译
      • 错误1: stdlib.h: 没有那个文件或目录
      • 错误2:error: invalid conversion from ‘const char*’ to ‘char*’ [-fpermissive]
    • 安装
  • 管理多个版本的 OpenCV
  • 在Leg-KILO的CMakeLists.txt文件中修改

opencv版本问题

我的是安装ros自带的4.2.0版本,该系统需要3.2.0。

下载3.2.0源代码

https://github.com/opencv/opencv/releases/tag/3.2.0

直接用浏览器下载,并解压

进入解压后的目录

cd opencv-3.2.0

创建构建目录

mkdir build && cd build

运行 CMake 配置 配置时指定一个独立的安装目录,例如 /opt/opencv-3.2:

cmake -DCMAKE_BUILD_TYPE=Release \-DCMAKE_INSTALL_PREFIX=/opt/opencv-3.2 \-DBUILD_SHARED_LIBS=ON ..

出错:

在这里插入图片描述

解决办法:参考CMake Error at 3rdparty/ippicv/downloader.cmake:77 (message): ICV: Failed to download ICV package:

使用多线程编译

make -j$(nproc)

错误1: stdlib.h: 没有那个文件或目录

在这里插入图片描述

解决办法:参考stdlib.h: 没有那个文件或目录

cmake时加上参数-D ENABLE_PRECOMPILED_HEADERS=OFF

错误2:error: invalid conversion from ‘const char*’ to ‘char*’ [-fpermissive]

在这里插入图片描述

错误信息被顶上面了,可以重定向输出到文件中:

make -j4 > ~/Desktop/make_output.log 2>&1

/home/ubuntu2004/opencv-3.2.0/modules/python/src2/cv2.cpp:730:34: error: invalid conversion from ‘const char*’ to ‘char*’ [-fpermissive]
730 | char* str = PyString_AsString(obj);
在这里插入图片描述
解决办法:
invalid conversion from ‘const char*’ to ‘char*’ [-fpermissive]
或make时的问题
在opencv-3.2.0/modules/python/src2/cv2.cpp路径下
找到cv2.cpp,大约在730行,将
char* str = PyString_AsString(obj);
改为
char* str = (char *)PyString_AsString(obj);

安装

sudo make install

管理多个版本的 OpenCV

在 C++ 项目中使用
通过 CMake 的 find_package 指定 OpenCV 版本。例如,使用 OpenCV 3.2:

find_package(OpenCV 3.2 REQUIRED PATHS /opt/opencv-3.2/share/OpenCV)
include_directories(${OpenCV_INCLUDE_DIRS})
target_link_libraries(your_target ${OpenCV_LIBS})

在Leg-KILO的CMakeLists.txt文件中修改

注释掉之前的,补上opencv 3.2.0安装的路径


# find_package(OpenCV REQUIRED QUIET)find_package(OpenCV 3.2 REQUIRED PATHS /opt/opencv-3.2/share/OpenCV)

http://www.ppmy.cn/ops/142046.html

相关文章

学习maven(添加依赖坐标,maven的常用命令,依赖传递,解决依赖冲突)

目录 前言 添加依赖坐标 maven 的常用命令 如下图所示:重点是标红的 如何使用这些maven的常用命令呢? 实例 maven常用的命令可以在IDEA中有自带插件来完成 打开IDEA的命令行终端 依赖传递 什么是依赖传递呢? 解决依赖冲突问题 什么…

网络爬虫全解析

一、网络爬虫基础要点 (一)爬虫原理 目标确定:明确需要抓取数据的网站或网页范围,例如针对特定电商平台抓取商品信息,或聚焦新闻网站获取新闻报道内容,要考量数据的价值与用途。URL 解析:理解网…

CodeFuse「编码挑战季」:冲刺最后1个月!MelGeek磁轴键盘、Beats耳机等你来拿~

本次活动自 1024 程序员节开始,12 月底结束,还有一个月的挑战时间,速来参与,赢取超值奖品!!! 活动介绍 本次 CodeFuse「编码挑战季」活动,需实际完成muAgent、MFTCoder、ModelCache…

SSM虾米音乐项目6--后台专辑模块的修改和删除

删除操作 删除的前端界面 删除的前端代码 <button data-toggle"button" class"btn btn-sm btn-warning" aid"${album.aid}" pic"${album.pic}"> 删除 </button></td> 点击删除按钮&#xff0c;会调用JS中的AJAX请…

【k8s】kubectl get nodes报NotReady

目录 1. 说明2. 问题描述3. kube-flannel.yml 1. 说明 1.这里k8s的版本是v1.17.4。2.若kube-flannel.yml中的镜像拉取不下来&#xff0c;可以下载本文章的文件资源&#xff0c;手动docker load -i ***.tar的方式。3.v1.17.4的kube-flannel.yml参考下面代码。4.通过kubectl get…

SpringBoot连接数据库启动报错Plugin ‘mysql_native_password‘ is not loaded(2024最新)

文章目录 1.报错内容&#xff1a;2.解决方案2.1 进入到mysqlserver的安装目录&#xff0c;如下图&#xff0c;并找到my.ini文件2.2修改my.ini文件内容 2.2 重启mysql服务 1.报错内容&#xff1a; 使用mysql8.0—springboot项目运行报错 Plugin ‘mysql_native_password’ is n…

Pandas常见函数

Pandas 是 Python 中用于数据分析和处理的强大工具库。以下是 Pandas 中一些常见的函数和方法&#xff0c;按用途分类总结&#xff1a; 1. 数据创建 pd.Series(data, index)&#xff1a;创建一维的序列对象。pd.DataFrame(data, index, columns)&#xff1a;创建二维的DataFra…

JVM--垃圾回收机制

垃圾回收机制&#xff08;Garbage Collection&#xff0c;简称GC&#xff09;是Java虚拟机&#xff08;JVM&#xff09;中的一项关键技术&#xff0c;它自动管理程序运行时产生的内存分配与释放&#xff0c;从而减轻了程序员手动管理内存的负担&#xff0c;并减少了由于错误的内…