ubuntu虚拟机系统下嵌入式交叉编译opencv
【代码】ubuntu虚拟机系统下嵌入式交叉编译opencv。
·
1.更新ubuntu中的镜像源文件
通过如下命令更新镜像源:
sudo apt-get update
sudo apt-get upgrade
2.安装依赖包
sudo apt-get install build-essential
sudo apt-get install cmake git libgtk2.0-dev pkg-config libavcodec-dev libavformat-dev libswscale-dev
sudo apt-get install python-dev-is-python2 python-numpy libtbb2 libtbb-dev libjpeg-dev libpng-dev libtiff-dev libdc1394-22-dev libjasper-dev
如果出现了报错信息如下,说明你使用的ubuntu18.04之后的系统,libjasper-dev 从 Ubuntu 18.04 起就被官方仓库移除(版权争议),因此在Ubuntu 20.04或者Ubuntu 22.04直接报错:
Reading package lists... Done
Building dependency tree
Reading state information... Done
E: Unable to locate package libjasper-dev
因此,我们需要通过其他方法安装libjasper-dev:
sudo add-apt-repository -y "deb http://security.ubuntu.com/ubuntu xenial-security main" ## 临时启用 xenial-security 仓库(只拿 jasper,不影响系统)
sudo apt update
sudo apt install -y libjasper1 libjasper-dev ##安装libjasper
sudo add-apt-repository -r "deb http://security.ubuntu.com/ubuntu xenial-security main" ##把 xenial 源再删掉防止混用仓库
sudo apt update
注:如果是ubuntu18.04这里python-dev-is-python2要换成python-dev
3.安装 cmake-gui
sudo apt-get install cmake-gui
4.设置cmake
创建build文件夹后,进入cmake文件夹设置:
配置交叉编译器:
需要修改的内容如下:
- 在CMAKE_BUILD_TYPE 值处输入RELEASE,其他保持不变(如果已经存在就不必修改)。
下方的CMAKE_INSTALL_PREFIX显示了默认的安装目录,生成makefile文件最后执行 make install时就会安装到这个目录,这里可以根据个人需求更改。我这里就不做修改了 - 在OPENCV_EXTRA_MODULES_PATH处,选择输入目录(单击这一行后方空白处即可选中)
然后选择opencv_contrib-3.2.0文件夹中的modules文件夹,注意,不是只选中opencv_contrib-3.2.0文件夹就好了,需要选中里面的modules文件夹! 如下图所示,然后点Choose。
注:OPENCV_EXTRA_MODULES_PATH 是用来指定要编译的扩展模块,其中包括OpenCV_contrib模块。 - 选择CMAKE_INSTALL_PREFIX。 install 是刚刚创建的,后面的 make install 会把编译好的opencv libs拷贝到该目录下
- 勾选 BUILD_opencv_world(根据需求来)
- 给 CMAKE_EXE_LINKER_FLAGS 加上参数 -lpthread -lrt -ldl
- 设置 CMAKE_FIND_ROOT_PATH 为交叉编译工具链的 bin 目录
- 在CMAKE_C_FLAGS和CMAKE_CX_FLAGS后添加 -pthread -ldl
注:libc-2.31.so # 2.31 ≥ 2.17 → 不用 -lrt
火山引擎开发者社区是火山引擎打造的AI技术生态平台,聚焦Agent与大模型开发,提供豆包系列模型(图像/视频/视觉)、智能分析与会话工具,并配套评测集、动手实验室及行业案例库。社区通过技术沙龙、挑战赛等活动促进开发者成长,新用户可领50万Tokens权益,助力构建智能应用。
更多推荐
所有评论(0)