ubuntu20.04复现 Leg-KILO

这里写目录标题

opencv版本问题

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

下载3.2.0源代码

cpp 复制代码
https://github.com/opencv/opencv/releases/tag/3.2.0

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

进入解压后的目录

bash 复制代码
cd opencv-3.2.0

创建构建目录

bash 复制代码
mkdir build && cd build

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

bash 复制代码
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:

使用多线程编译

bash 复制代码
make -j$(nproc)

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

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

cmake时加上参数-D ENABLE_PRECOMPILED_HEADERS=OFF

错误2:error: invalid conversion from 'const char*' to 'char*' -fpermissive

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

bash 复制代码
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);

安装

bash 复制代码
sudo make install

管理多个版本的 OpenCV

在 C++ 项目中使用

通过 CMake 的 find_package 指定 OpenCV 版本。例如,使用 OpenCV 3.2:

bash 复制代码
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安装的路径

bash 复制代码
# find_package(OpenCV REQUIRED QUIET)

find_package(OpenCV 3.2 REQUIRED PATHS /opt/opencv-3.2/share/OpenCV)
相关推荐
~|Bernard|14 小时前
Linux 定时任务(Cron)完整教程
linux·运维·服务器
小雪崩15 小时前
嵌入式学习 day25:哈希表及排序与查找
linux·c语言·数据结构·学习·排序算法
奇树谦16 小时前
HDD 为什么适合顺序大文件读写:从 RAID 5 到 RAID 50 的原理与性能分析
linux·运维·网络
hi_ro_a16 小时前
Linux基础开发工具详解
linux·运维·服务器
嵌入式阿蔡16 小时前
Linux_01:交叉编译与开发环境实战——从单片机跨到 Linux 的第一道坎
linux·运维·网络·单片机·嵌入式硬件·嵌入式实时数据库
Pocker_Spades_A17 小时前
终端里也能斗地主:Linux部署Ratel,从本地对战到公网联机
linux·运维·服务器
佳児素花痴╮17 小时前
C语言链接库
linux·运维·服务器
wWYy.18 小时前
Linux发送数据包的过程
linux·网络
小嵌同学18 小时前
Linux 内核中的 Per-CPU 机制详解
linux·运维·arm开发·嵌入式
Hello-FPGA19 小时前
嵌入式LINUX 设备 ip配置后怎么保存才能掉电不消失?
linux·运维·服务器