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等等明明定义了却莫名其妙的错误。

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
对于使用OpenCV进行交叉编译,你可以按照以下步骤进行操作: 1. 首先,确定你要交叉编译的目标平台和架构。这通常是一个嵌入式系统或其他非常规平台。 2. 接下来,确保你的交叉编译环境已经设置好。你需要安装交叉编译工具链,该工具链适用于目标平台的架构。例如,如果你的目标平台是ARM架构,你需要安装ARM交叉编译工具链。 3. 下载OpenCV源代码,并解压缩到你的开发环境中。 4. 创建一个新的目录,用于构建OpenCV交叉编译的输出文件。例如,你可以在源代码目录之外创建一个名为`build_cross`的目录。 5. 进入`build_cross`目录,并运行以下命令来配置OpenCV的构建过程: ``` cmake -DCMAKE_TOOLCHAIN_FILE=/path/to/toolchain.cmake /path/to/opencv/source ``` 这里的`/path/to/toolchain.cmake`是你安装的交叉编译工具链的路径,`/path/to/opencv/source`是OpenCV源代码的路径。 6. 运行以下命令来编译OpenCV: ``` make ``` 这将使用交叉编译工具链编译OpenCV,生成目标平台上可执行的二进制文件。 7. 完成编译后,你可以将生成的OpenCV库和头文件复制到你的目标平台上,并在项目中使用它们。 请注意,具体的交叉编译步骤可能因平台和工具链而异。你可能需要根据你的情况进行适当的调整。此外,确保阅读OpenCV文档和相关资源,以了解更多关于交叉编译的详细信息和注意事项。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值