1.下载安装包opencv4.1.1.zip与opencv_contrib-4.1.1.zip,解压。
2.打开cmake-gui编译
cmake-gui
3.在where is the source code 里输入opencv解压后的路径:xx/xx/opencv-4.1.1
在where to build the binaries 里输入自己新创建的build文件夹路径:xx/xx/opencv-4.1.1/build
然后点击Configure,选择Specify options for cross-compiling,点击Next
在Operating System 里输入Linux。注意!一定是Linux!如果输入交叉编译系统名称,后续必须把动态链接库放在../../lib里,这个问题困扰了我好久。
在C里输入gcc的路径,如:/opt/hisi-linux/x86-arm/arm-himix200-linux/bin/arm-himix200-linux-gcc
在C++里输入g++的路径,如:/opt/hisi-linux/x86-arm/arm-himix200-linux/bin/arm-himix200-linux-g++
然后点击Finish,开始configure。
4.修改配置项,勾选Advanced:
(1)CMAKE_INSTALL_PREFIX,可以设置一个你自己创建的文件夹,这样编译好的include和lib都在这个文件见里
(2)OPENCV_EXTRA_MODULE_PATH,设置为之前解压的opencv_contrib的路径,如:xx/xx/opencv_contrib-4.1.1/modules
(3)CMAKE_EXE_LINER_FLAGS,设置为 -lpthread -ldl
(4)CMAKE_CXX_FLAGS,设置为 -fPIC -static-libstdc++ -fpermissive
(5)ZLIB_INCLUDE_DIR,设置为xx/xx/opencv-4.1.1/3rdparty/zlib
(6)CMAKE_FIND_ROOT_PATH,设置为arm工具链的位置,如:/opt/hisi-linux/x86-arm/arm-himix200-linux/bin
(7)选中BUILD_opencv_world
(8)把BUILD_TESTS和BUILD_PERF_TESTS去掉
5. 点击Genenrate
6.进入之前创建的build文件夹
make -j8
7.报错:
(1)No suitable threading library available
在xx/xx/opencv-4.1.1/3rdparty/protobuf/src/google/protobuf/stubs/common.cc文件里添加
#define HAVE_PTHREAD
(2)缺失文件boostdesc_bgm.i等时
把缺失的文件下载下来,拷贝到opencv_contrib-4.1.1/modules/xfeatures2d/src里
下载地址:https://pan.baidu.com/share/init?surl=-PA3ItqCCiaNUXZxIHHiIg 密码:xlpn
(3)出现找不到features2d/test/test_detectors_regression.impl.hpp之类的报错时
这些hpp都在opencv-4.1.1/modules/features2d/test/里面,可以把opencv-4.1.1/modules/里的features2d文件夹拷贝到opencv_contrib-4.1.1/modules/xfeatures2d/test里。
8.make -j8成功之后
make install
就编译成功啦,在你之前设置的CMAKE_INSTALL_PREFIX文件夹里就有了include和lib文件。