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)
相关推荐
OpenPomeloxCommunity18 小时前
Linux 驱动基础(二):驱动自动加载的设计与实现
linux
yyk3332418 小时前
Linux常见的基础命令
linux·运维·服务器
启博网络19 小时前
实战:无公网IP环境下的企业异地组网方案(附拓扑与IP规划)
linux·网络·tcp/ip
Soari20 小时前
Linux 内核对比:PREEMPT_DYNAMIC vs PREEMPT_RT
linux·运维·ubuntu
Dr_Fourier20 小时前
mmap的使用与底层原理
linux·c++
linx2951 天前
单元五 · 对称认知·下:编译与链接
linux·c语言·开发语言·c++·嵌入式硬件
橘色的喵1 天前
Claude Code 状态栏脚本:一行显示模型、上下文占用、git 分支和当前目录
linux·git·bash·claude
Jason_zhao_MR1 天前
新国标下DTUFTU设计最优解——米尔基于全志T153核心板_排版优化
linux·单片机·架构·t113i·双处理器·mcu+linux·电力采集
程序员-Benothing1 天前
Linux 用户与用户组管理:useradd usermod groupadd 实战
linux·运维·服务器
byte轻骑兵1 天前
【BlueZ 】util 模块:通用工具函数,源码中高频复用的基础组件
linux·人工智能·bluez·电脑蓝牙·嵌入式蓝牙