在linux系统上交叉编译opencv4.1.1

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文件。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值