纯新手教程
参考大佬的opencv交叉编译:嵌入式linux学习之opencv交叉编译/移植并使用CmakeList编译demo_交叉编译opencv-CSDN博客
调整一定的配置步骤后在龙芯交叉编译工具loongson-gnu-toolchain-8.3-x86_64-loongarch64-linux-gnu-rc1.3-1下配置opencv交叉编译的环境
为了龙芯车赛!
1.下载opencv源码
opencv官方源码链接下载Releases - OpenCV 选择3.4.6版本下载
将下载好的压缩包复制到虚拟机当中(最好在虚拟机中创建一个opencv文件夹统一管理文件),并且在其中创建一个build文件夹和一个install文件夹
解压opencv源码文件压缩包(zip),获得上图opencv-3.4.16源码文件
sudo unzip opencv-3.4.16.zip
2.安装编译工具
确保虚拟机联网,并且配置了可靠的源镜像(例如:清华源,阿里源,中科大源等),安装cmake 和 cmake-gui 工具
sudo apt-get install cmake cmake-qt-gui cmake-curses-gui
3.安装龙芯2K0300久久派的交叉编译工具环境链
参考龙芯2K0300开发笔记(新手向:到点灯和视频图像颜色识别处理)-CSDN博客大佬的文章,已经写的很详细了,如果这步有问题,也欢迎私信
4.安装环境依赖
sudo apt-get install build-essential
sudo apt-get install libopenblas-dev
sudo apt-get install git pkg-config libavcodec-dev libavformat-dev libswscale-dev
sudo apt-get install python-dev python-numpy libtbb2 libtbb-dev libjpeg-dev libpng-dev libtiff5-dev libdc1394-22-dev
sudo apt-get install libavcodec-dev libavformat-dev libswscale-dev libv4l-dev liblapacke-dev
sudo apt-get install libxvidcore-dev libx264-dev
sudo apt-get install libatlas-base-dev gfortran
sudo apt-get install ffmpeg
注意!要一步步复制完全
5.开始编译opencv环境
进入之前创建好的build文件夹,执行命令:
cmake-gui
依次选择:
注意!上图的Linux要大写L。然后指定我们安装的龙芯2K0300久久派工具链的地址,第二个框C后面选择的是/opt/loongson-gnu-toolchain-8.3-x86_64-loongarch64-linux-gnu-rc1.3-1/bin/loongarch64-linux-gnu-gcc,第三个框C++后面选择的是/opt/loongson-gnu-toolchain-8.3-x86_64-loongarch64-linux-gnu-rc1.3-1/bin/loongarch64-linux-gnu-g++,第四个框ROOT后面选择/opt/loongson-gnu-toolchain-8.3-x86_64-loongarch64-linux-gnu-rc1.3-1/bin
以防有人找不到该路径,文件opt的路径如下图:
在 CMAKE_EXE_LINKER_FLAGS 处添加上-lpthread -lrt -ldl。
在CMAKE_INSTALL_PREFIX 处指定安装目录,即为我们上文创建的install文件地址
进入install文件中,终端打开,输入pwd命令即可得到路径,如下:
BUILD_TESTS取消勾选,不然编译会报错
在源码目录 opencv-3.4.1/3rdparty/protobuf/src/google/protobuf/stubs/common.cc 这个文件下添加#define HAVE_PTHREAD(注意要保留“#”,截图没有截到)
开始编译!
先Configure后Generate
编译完成后,进入build目录,就可以看到编译生成的构建文件啦!
在build里打开终端,输入命令:
make
等待构建完成(可能要等一个小时以上),完成后输入命令:
make istall
进入install文件中就可以看到一下文件:
当你看到有以上四个文件时,恭喜你!基于龙芯2K0300交叉编译工具链的opencv环境配置成功啦!
在此,再次鸣谢两位大佬的文章嵌入式linux学习之opencv交叉编译/移植并使用CmakeList编译demo_交叉编译opencv-CSDN博客
龙芯2K0300开发笔记(新手向:到点灯和视频图像颜色识别处理)-CSDN博客
若有错误,欢迎指正!