opencv交叉编译路过的坑及编译测试记录

背景:需要在Hi3559a上运行opencv相关程序(Multi-core模式)。

服务器上是vmware装的ubuntu16.04_64位, opencv是3.3.0版本

交叉编译器:aarch64-himix100-linux-g++ aarch64-himix100-linux-gcc

步骤如下:

1. 下载opencv源码并解压(略)

2. apt-get install cmake-qt-gui

3. cmake-gui, 配置方式如  https://blog.csdn.net/sanallen/article/details/81227182   严格安照他的流程走。

 

重点说一些坑:

1. 可能会遇到not found : zlib.h找不到, 需要改cmake-gui里面的一个选项:ZLIB_INCLUDE_DIR,改成 opencv目录下的相关文件夹,比如我的是:/home/xxxx/opencv-3.3.0/3rdparty/zlib

2. make install 后需要手动把 opencv/build/3rdparty/lib 里面的库 拷贝到 make install 时候安装的位置下的lib文件夹里面,比如/usr/local/lib

3. 测试编译的时候,需要注意链接顺序,最被需要的(opencv_core)放在最后,比如

aarch64-himix100-linux-g++ \
    -o testopencv testopencv.cpp \
    -I /home/xxxx/rootfs/fakeroot/root/opencv/include \
    -L /home/xxxx/rootfs/fakeroot/root/opencv/lib \
    -lopencv_highgui -lopencv_imgcodecs \
    -lopencv_imgproc -lopencv_core \
    -lpthread -lzlib -ldl -llibjpeg

不然会出现诸如Undefined reference to cvLog, cvCartToPolar等等明明定义了却莫名其妙的错误。

你可能感兴趣的:(Hi3559a)