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)
相关推荐
weixin_466810 分钟前
Docker Dockerfile文件
linux·运维·服务器
赖small强16 分钟前
【Linux C/C++ 开发】 GCC 编译过程深度解析指南
linux·c语言·c++·预处理·链接·编译·编译过程
做人不要太理性20 分钟前
【Linux系统】ext2文件系统
大数据·linux·操作系统·文件系统
保持低旋律节奏29 分钟前
linux——软件包、yum 安装和卸载
linux·运维·服务器
莫道桑榆晚丶36 分钟前
Linux系统编程--------MP3项目实战
linux·学习
小oo呆1 小时前
【学习心得】Python好库推荐——pipx
linux·开发语言·python
龙吟游戏1 小时前
Ubuntu 25.10桌面版安装
linux·运维·ubuntu
筑梦之路1 小时前
centos 7 grub加密 —— 筑梦之路
linux·运维·centos
dian2008-ic1 小时前
Linux pcie【9】基于GIC-V3 ITS实现pcie msi中断
linux·arm开发·驱动开发·嵌入式硬件
技术摆渡人1 小时前
Android 14系统深度分析
android·linux·驱动开发