按照前面博客下载opencv的源码,放入到树莓派4B上
这里选择的版本是opencv3.4.4.如下配置一些前提库
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 libtbb2 libtbb-dev libjpeg-dev libpng-dev libtiff-dev libjasper-dev libdc1394-22-dev
然后cd到opencv3.4.4下,如之前博客那样,进入opencv3.4.4根目录下
mkdir build
cd build
cmake..
sudo make -j1 #只安排一个线程去编译
注意如果在sudo make -j1过程中出现了如下错误信息:
?c++: error: unrecognized command-line option ‘--param=ipcp-unit-growth=100000’; did you mean ‘--param=ipa-cp-unit-growth=’?
可以看到一些提示,应该是命令参数有改动,不识别了,尝试去提示的目录下修改build.make和flags.make, 将里面的ipcp-unit-growth全部替换为ipa-cp-unit-growth
?完毕后,再次执行sudo make -j1,就可以正常编译了(需要花费较久时间,这也是为什么要交叉编译的原因,有时源码库太大,直接在嵌入式平台上太久,就需要在PC平台上交叉编译好)。最后执行语句进行安装
sudo make install
完毕后终端输入如下命令
pkg-config opencv --modversion
出现如下信息,说明成功安装。
?pkg-config是个好东西,省的每次命令行模式执行时,要去跟一堆参数,指定lib,include在哪里,后面几篇配置这块都会用这种方式。这里还是拿前面博客说的源码自带的例子作为实验,example.cpp中的代码修还是改为如下:
#include <opencv2/core/core.hpp>
#include <opencv2/opencv.hpp>#include <iostream>
using namespace cv;using namespace std;
int main(){
Mat img = imread("/usr/108.bmp");
imshow("image", img);
waitKey(0);
return 0;
}
同时放一张图片放到usr目录下,按照前面博客里的方式(CmakeFiles或者直接g++编译器)编译运行即可。
或者
到此配置成功!
|