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)
相关推荐
物联网老王7 小时前
Ubuntu Linux Cursor 安装与使用一
linux·运维·ubuntu
一位摩羯座DBA9 小时前
Redhat&Centos挂载镜像
linux·运维·centos
学习3人组9 小时前
CentOS配置网络
linux·网络·centos
weixin_307779139 小时前
Hive集群之间迁移的Linux Shell脚本
大数据·linux·hive·bash·迁移学习
漫步企鹅10 小时前
【蓝牙】Linux Qt4查看已经配对的蓝牙信息
linux·qt·蓝牙·配对
cui_win10 小时前
【网络】Linux 内核优化实战 - net.core.flow_limit_table_len
linux·运维·网络
梦在深巷、10 小时前
MySQL/MariaDB数据库主从复制之基于二进制日志的方式
linux·数据库·mysql·mariadb
冰橙子id11 小时前
linux系统安全
linux·安全·系统安全
stark张宇11 小时前
VMware 虚拟机装 Linux Centos 7.9 保姆级教程(附资源包)
linux·后端
Johny_Zhao11 小时前
Ubuntu系统安装部署Pandawiki智能知识库
linux·mysql·网络安全·信息安全·云计算·shell·yum源·系统运维·itsm·pandawiki