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)
相关推荐
mCell3 小时前
从删库到跑路?这50个Linux命令能保你职业生涯
linux·windows·macos
杰克逊的日记3 小时前
GPU运维常见问题处理
linux·运维·gpu
誰能久伴不乏4 小时前
Linux系统调用概述与实现:深入浅出的解析
linux·运维·服务器
程序员学习随笔4 小时前
Linux进程深度解析(2):fork/exec写时拷贝性能优化与exit资源回收机制(进程创建和销毁)
linux·运维·服务器
mmoyula4 小时前
【RK3568 PWM 子系统(SG90)驱动开发详解】
android·linux·驱动开发
-SGlow-4 小时前
MySQL相关概念和易错知识点(2)(表结构的操作、数据类型、约束)
linux·运维·服务器·数据库·mysql
代码改变世界ctw5 小时前
Linux内核设计与实现 - 第14章 块I/O层
linux·运维·服务器
van叶~7 小时前
Linux网络-------1.socket编程基础---(TCP-socket)
linux·网络·tcp/ip
风吹落叶花飘荡7 小时前
Ubuntu系统 系统盘和数据盘扩容具体操作
linux·运维·ubuntu
zoulingzhi_yjs8 小时前
haproxy配置详解
linux·云原生