当前位置:   article > 正文

使用docker交叉编译opencv2.4.9_docker 安装交叉编译的opencv

docker 安装交叉编译的opencv


因为要在开发板上使用opencv 2.4.9,版本较老,无法直接在ubuntu18.04LTS上编译,所以使用docker虚拟容器来编译opencv。

安装docker 和ubuntu14.04镜像

ubuntu18.04已经默认安装好了docker,可以直接使用。其他版本使用
wget -qO- https://get.docker.com/ | sh命令来安装
启动docker服务

service docker start
  • 1

安装好后在/etc/default/docker文件中末尾增加一行:
DOCKER_OPTS="–registry-mirror=http://hub-mirror.c.163.com"
然后重新运行docker服务:

service docker restart
  • 1

从远程仓库拉取ubuntu 14.04镜像

docker pull ubuntu:14.04
  • 1

查看获得的镜像

docker images
  • 1

运行ubuntu镜像

docker run -t -i ubuntu:14.04 /bin/bash
  • 1

结果如下

root@ea25e72ee089:/#
  • 1

@后面跟的是该容器的id,保存的时候切记先在另一个终端使用docker commit [id] [name]保存后再关闭原来运行docker这个终端,docker不是虚拟机,不会自动保存容器内做的修改。

使用阿里云的源

vi /etc/apt/sources.list
deb http://mirrors.aliyun.com/ubuntu/ trusty main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ trusty-security main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ trusty-updates main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ trusty-proposed main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ trusty-backports main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ trusty main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ trusty-security main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ trusty-updates main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ trusty-proposed main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ trusty-backports main restricted universe multiverse
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11

修改完成后更新源

apt-get update
  • 1

安装交叉编译opencv必要的安装包

apt-get install build-essential cmake git libgtk2.0-dev pkg-config python-dev python-numpy libavcodec-dev libavformat-dev libswscale-dev libjpeg-dev libpng-dev wget libcanberra-gtk-module gcc-arm-linux-gnueabihf g++-arm-linux-gnueabihf
  • 1

交叉编译

下载并解压opencv

wget https://github.com/opencv/opencv/archive/2.4.9.tar.gz
tar -zxvf 2.4.9.tar.gz
cd opencv-2.4.9**
  • 1
  • 2
  • 3

修改 platforms/linux/arm-gnueabi.toolchain.cmake

去掉交叉编译器的版本

set(CMAKE_C_COMPILER    arm-linux-gnueabi${FLOAT_ABI_SUFFIX}-gcc)
set(CMAKE_CXX_COMPILER  arm-linux-gnueabi${FLOAT_ABI_SUFFIX}-g++)
  • 1
  • 2

执行自带的交叉编译的脚本

./platforms/scripts/cmake_arm_gnueabi_hardfp.sh
  • 1

修改cmake脚本

因为编译脚本的bug造成找不到CMAKE_AR程序,所以手动修改下cmake脚本

cd build_linux_arm_hardfp
vi CMakeFiles/2.8.12.2/CMakeCCompiler.cmake
  • 1
  • 2

修改为:

set(CMAKE_AR "arm-linux-gnueabihf-ar")
  • 1

编译生成opencv2.4.9

make
make install
  • 1
  • 2

生成的opencv库文件在install目录下

将生成的目录拷贝到主机目录/tmp下

docker cp  ea25e72ee089:opencv2.4.9/platforms/build_linux_arm_hardfp/install /tmp
  • 1
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小小林熬夜学编程/article/detail/108018?site
推荐阅读
相关标签
  

闽ICP备14008679号