【环境配置】交叉编译生成arm开发板的opencv环境 / 移植opencv

第一步:准备工作

确定所使用的Ubuntu系统有安装cmake和cmake-gui工具,如没有,可使用以下命令安装:

apt-get install cmake
apt-get install cmake-qt-gui

同时,准备好所需移植opencv版本的source压缩包。我安装了两个版本,分别是opencv-2.4-9和opencv3.4.8

第二步:开始安装

1、执行cmake-gui命令
跟在Ubuntu中安装opencv一样,先建一个编译目录

mkdir arm_build
cd arm_build
cmake-gui

出现如下界面
【环境配置】交叉编译生成arm开发板的opencv环境 / 移植opencv_第1张图片

2、然后开始配置。其中,Where is the source code是指opencv的解压目录,Where to build the binaries是指我们经过编译后的二进制文件要存放的目录。
内容如下:

【环境配置】交叉编译生成arm开发板的opencv环境 / 移植opencv_第2张图片

3、然后点击下面的config,出现如下界面。这里选择Unix Makefiles,以及勾选Specify options for cross-compiling,然后点击next。
【环境配置】交叉编译生成arm开发板的opencv环境 / 移植opencv_第3张图片

4、然后出现如下界面:
【环境配置】交叉编译生成arm开发板的opencv环境 / 移植opencv_第4张图片
Operating System栏填Linux
Version栏可填上Ubuntu系统的Linux版本号,也可不填
Processor栏课可arm,也可不填

Compilers板块中,选择arm-linux-gcc和arm-linux-g++交叉编译器

最后Target Root栏选择的是交叉编译器的安装目录

总体填写如下图:
【环境配置】交叉编译生成arm开发板的opencv环境 / 移植opencv_第5张图片

5、点击Finish之后便开始配置
若配置完成后,下方是会出现一个Configuring done
然后点击Generate进行生成
一般情况下,若config没问题,那么generate也是没问题的,最后会显示Generating done

【环境配置】交叉编译生成arm开发板的opencv环境 / 移植opencv_第6张图片

重点!!!闭坑项!!!
在config的时候,大概率是会出现错误的,这是因为勾选了一些系统并没有安装的库。
这时候就需要去掉一些没安装的库,但是一般情况下我们也不知道哪些库是系统没安装的,这时就可以找到WITH开头的,一个一个去掉,每去掉一个就配置一次。还有就是采取暴力方式,把WITH开头的全去了,这里指出,WITH_TITF和WITH_GTK一般是都要去掉的。
然后你就会惊奇的发现,配置通过了!
【环境配置】交叉编译生成arm开发板的opencv环境 / 移植opencv_第7张图片
6、配置完成之后,就是执行make命令进行安装,安装的时间有点小长,需要耐心等待

如下则为make成功
【环境配置】交叉编译生成arm开发板的opencv环境 / 移植opencv_第8张图片

闭坑项!!!

make的时候也是会出现错误的,很多的博客并没有指出来为什么会错,更没有指出来解决方案。
所以我很有必要说一说,出现错误的原因呢,是因为之前config的时候并没有把系统为安装的东西给排除掉,所以make的时候就出错啦。

解决方案:
暴力法,就是在config的时候把WITH开头的全去了。
温柔法,一个一个排除。

7、然后执行make install
【环境配置】交叉编译生成arm开发板的opencv环境 / 移植opencv_第9张图片
到这就安装结束了。

最后:测试

编写text.cpp测试程序

#include

using namespace cv;

int main()
{
	Mat src;
	src = imread("1.jpg");
	imshow("img_text",src);
	waitKey(6000);
	return 0;
 }

编写Makefile文件

all:text
CFLAGS=-Wall
OPENCV_INCLUDE=-I /usr/local/include
CC = arm-linux-g++
OPENCV_LINK =-L/usr/local/lib -lopencv_highgui -lopencv_core -lpthread -lrt
%:%.cpp
#$(CC) `pkg-config opencv --libs` $(OPENCV_INCLUDE) $< -o $@ $(OPENCV_LINK)
	$(CC) $(OPENCV_INCLUDE) $< -o $@ $(OPENCV_LINK)
.PHONY:clean
clean:
	rm -f test

执行make命令,生成arm格式的可执行文件。
在这里插入图片描述
接下来就是将程序放在arm开发板上去运行,这里要注意的是,要把最开始的arm编译目录中的lib库文件复制一份,放在开发板的lib库目录中,这样,编译好的程序才能正常运行。

你可能感兴趣的:(配置,OpenCV,移植)