Ununtu18编译arm版opencv3.3.0

环境准备:

ubuntu18(64位)

opencv3.3.0.tar

arm-linux-gnueabi5.4.0.tar

交叉编译opencv

1、解压opencv3.3.0到指定目录下(如opencv3.3.0)

unzip opencv3.3.0zip

2、新建目录build并进入

mkdir build
chmod -R 777 build
cd build

3、安装cmake-qt-gui,进入到build目录,并运行

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

选择源文件路径和安装路径,

之后点击configure

Next

然后选择交叉编译路径,点击finish

之后增加选项:

BUILD_ZLIB BUILD_JPEG BUILD_PNG BUILD_opencv_world OPENCV_ENABLE_NONFREE

取消选项:

WITH_CUDA WITH_GTK WITH_FFMPEG WITH_1394 WITH_GSTREAMER WITH_TIFF WITH_OPENEXR WITH_OPENCL BUILD_opencv_freetype WITH_LIBV4L

以上选项根据版本有所不同,没有的选项可以忽略。

然后可以修改安装路径

最后点击Configure之后再点击Generate(此步一定要联网)

完成之后就可以退出cmake-gui。

4、修改CMakeCache.txt

在CMAKE_EXE_LINKER_FLAGS:STRING= 之后添加

-lpthread -lrt -ldl

5、然后保存退出

执行

sudo make -j4

6、很大概率会报错

modules/core/CMakeFiles/opencv_core.dir/build.make:2307: recipe for target ‘lib/libopencv_core.so.3.4.1’ failed make[2]: *** [lib/libopencv_core.so.3.4.1] Error 1 make[2]: *** Deleting file ‘lib/libopencv_core.so.3.4.1’ CMakeFiles/Makefile2:1521: recipe for target ‘modules/core/CMakeFiles/opencv_core.dir/all’ failed make[1]: *** [modules/core/CMakeFiles/opencv_core.dir/all] Error 2 Makefile:160: recipe for target ‘all’ failed make: *** [all] Error

版本问题(64位Ubuntu)

解决方案:

1、先把BUILD_opencv_world选项去掉试试看,重新编译,还是不行

2、进入opencv3.3.0/build/3rdparty(第三步开头选择的)目录下,先找该路径中有哪些目录下有flags.make

cd build/3rdparty
find -name flags.make

如:/zlib/CMakeFles/zlib.dir/flags.make

将这些目录下所有的flags.make

3、修改

C_FLAGS = -W -Wall

C_FLAGS = -O3 -fPIC -W -Wall

用来支持在64位机上编译

4、最后重新编译:

sudo make -j4

应该就没问题了

5、安装:

sudo make install

安装完成之后所有编译好的库文件都在/opt/opencv3.3.0/lib(自己修改的安装路径)。

经验分享 程序员 微信小程序 职场和发展