0. 序言

  • PC操作系统:Ubuntu 16.04
  • OpenCv版本:4.0
  • 交叉工具链:arm-linux-gnueabihf,gcc version 5.4.0
  • 目标平台:arm
  • 编译时间:20181224
  • 建议新手先看交叉编译的这篇文章:https://www.jianshu.com/p/0fcdce428d8f

1. 下载C++版本Eclipse

下载地址:https://www.eclipse.org/downloads/packages/ 选择Linux 64位

2. 创建C++Project

  • 步骤1:File-New-Project..-C++Project-Next-输入Project name-Next-输入Author-Next:

     
     
     
     
  • 步骤2:默认Debug和Release:

     
     
  • 步骤3:输入交叉编译命令的前缀和交叉编译所在的路径并点击Finish:
     
     

    说明:这里看不懂的,建议先看交叉编译的文章:https://www.jianshu.com/p/0fcdce428d8f

  • 目录结构:

     
     

3. 编写C++代码

  • 把Exam.cpp的代码替换为以下代码并保存:
 #include<opencv2/core.hpp>
#include<opencv2/imgcodecs.hpp>
#include<opencv2/imgproc.hpp>
using namespace cv;
int main(void)
{
Mat pic;
pic=imread("gaoyuanyuan.jpg");
Mat gray;
cvtColor(pic,gray,COLOR_BGR2GRAY);
imwrite("gray.png",gray);
return ;
}
注意:这里一定要执行保存的操作。
 
 

4. 添加头文件的路径

  • 右击项目Exam,选择Properties并设置如图选项,然后点击Apply And Closed。

     
     

    说明:
    ① /usr/local/arm/opencv-arm/ 是交叉编译执行make install后存放可执行文件的目录,也就是CMAKE_INSTALL_PREFIX对应的目录
    ② /usr/local/arm/opencv-arm/include/opencv4/ 对应Exam.cpp的代码"#include<opencv2/core.hpp>"
    ,因为我的opencv4的下一级目录是opencv2,opencv2里面存放的是头文件。

     
     

5. 添加库依赖

  • 右击项目Exam,选择Properties并设置如图选项,然后点击Apply And Closed。

     
     
     
     
注意:Libraries是手写的,它会自动拼接lib和so字符找到指定的依赖。而path则是上上个图展示的存放so文件的目录的路径。

6. 添加C++11新特性

  • Project->Properties->C/C++ Build->Settings->GCC G++ Compiler->Miscellaneous->Other flags 将-c -fmessage-length=0 改为 -c -fmessage-length=0 -std=c++11

     
    image.png

7. 项目Clean然后Build

  • Clean 是为了防止你中途没有配置完Properties就Build项目:

     
     

    说明:Building file是原始我们的cpp文件,Building target指的是编译cpp文件生成的可执行文件。

8. 导出可执行文件和so文件并执行

  • Exam可执行文件存放在生成的Debug目录下:

     
     
  • so文件就是我们刚刚指定的libraries依赖的path路径下的so文件:

     
     
  • 复制Exam可执行文件以及Exam.cpp程序所需的一张图片到arm平台的一个目录下,这里用到的图片名称为gaoyuanyuan.jpg
  • 复制so文件到arm平台的/lib文件夹下。
  • 进入Exam可执行文件和图片所在的目录,执行命令,就会生成一张gray.png图片:
./Exam
 

作者:付凯强
链接:https://www.jianshu.com/p/f515357e1539
来源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

嵌入式开发之移植OpenCv可执行程序到arm平台的更多相关文章

  1. 移植strace调试工具到arm平台

    strace工具是一个非常强大的工具,是调试程序的好工具.要移植到arm平台,就需要使用交叉编译工具编译生成静态链接的可执行文件.具体步骤如下:1.下载 strace-4.5.16     移植str ...

  2. (嵌入式开发)移植最新uboot

    一:准备移植 1.从下面的官网下载最新的U-boot.用google英文版搜索最新的u-boot源码  ftp://ftp.denx.de/pub/u-boot/ 2.建立sourceinsight工 ...

  3. 移植mysql到嵌入式ARM平台

    移植MySQL到嵌入式ARM平台  MySQL没有专门针对ARM的版本,移植到ARM没有官方文档可参考,因此,暂时参考这样一篇文档: http://blog.chinaunix.net/space.p ...

  4. zedboard开发板上移植opencv代码(立体匹配)

    前言 公司要做立体匹配相关的项目,已有matlab和c++版本,可是不能做到实时显示立体信息,想要硬件实现实时,无奈本渣也是个硬件的新手,先按照实验室lyq同学的思路在zedboard开发板的纯ARM ...

  5. 应聘linux/ARM嵌入式开发岗位

    **************************************************************** 因为发在中华英才和智联招聘没有人采我所以我 在这里发布我的个人简历希望 ...

  6. ARM嵌入式开发板

    iTOP-4412 ARM嵌入式开发板----主要特点 iTOP-4412开发平台是北京迅为电子研发设计的嵌入式开发板平台,核心板配备64位双通道2GB DDR3,16GBEMMC存储,三星原厂S5M ...

  7. 构建 ARM Linux 4.7.3 嵌入式开发环境 —— U-BOOT 引导 Kernel

    经过若干天的反复测试,搜索.终于成功利用 Qemu 在 u-boot 下引导 ARM Linux 4.7.3 内核.如下详细解释整个构建过程. 准备环境 运行环境:Ubuntu 16.04 需要的虚拟 ...

  8. 【课程分享】深入浅出嵌入式linux系统移植开发 (环境搭建、uboot的移植、嵌入式内核的配置与编译)

    深入浅出嵌入式linux系统移植开发 (环境搭建.uboot的移植.嵌入式内核的配置与编译) 亲爱的网友,我这里有套课程想和大家分享,假设对这个课程有兴趣的,能够加我的QQ2059055336和我联系 ...

  9. ARM嵌入式开发中的GCC内联汇编__asm__

    在针对ARM体系结构的编程中,一般很难直接使用C语言产生操作协处理器的相关代码,因此使用汇编语言来实现就成为了唯一的选择.但如果完全通过汇编代码实现,又会过于复杂.难以调试.因此,C语言内嵌汇编的方式 ...

随机推荐

  1. SpringCloud基础

    SpringCloud极大的简化了分布式系统的开发,实现了微服务的快速部署和灵活应用 SpringCloud主要框架 * 服务发现--Netfix Eureka * 服务调用--Netfix Feig ...

  2. idea的java类图标C不见,取而代之是J标识,且写代码无提示

    https://blog.csdn.net/weixin_42800689/article/details/83819676 方法1 此时我们需要关闭节能模式: File–Power Save Mod ...

  3. Grammar01 语法七要素之一_词类

    1 词类 1.1 词类表格 实词 名词 -> n. -> noun -> 给所有人和物命名的词. 动词 -> v. (vt. vi.) -> verb ( transit ...

  4. elasticsearch-head

    elasticsearch-head 是用于监控 Elasticsearch 状态的客户端插件,包括数据可视化.执行增删改查操作等 安装前先安装nodejs 1.下载  地址 2.安装 npm ins ...

  5. [ARM-LInux开发]linux设备驱动makefile入门解析

    以下内容仅作参考,能力有限,如有错误还请纠正.对于一个普通的linux设备驱动模块,以下是一个经典的makefile代码,使用下面这个makefile可以完成大部分驱动的编译,使用时只需要修改一下要编 ...

  6. Android MVP模式简单介绍:以一个登陆流程为例

    老的项目用的MVC的模式,最近完成了全部重构成MVP模式的工作,虽然比较麻烦,好处是代码逻辑更加清楚.简洁,流程更加清晰,对于后续版本迭代维护都挺方便.对于一些想要学习MVP模式的同学来讲,百度搜出来 ...

  7. charles 4.2.1 Ubuntu破解版安装

    charles 4.2.1 Ubuntu破解版安装 下载 charles-proxy-4.2.1_amd64.tar.gz 破解版 charles.jar 破解包 解压 sudo tar -zxvf ...

  8. [转帖]CNN、RNN、DNN的一般解释

    CNN.RNN.DNN的一般解释 https://www.jianshu.com/p/bab3bbddb06b?utm_campaign=maleskine&utm_content=note& ...

  9. Windows 编译安装 nginx 服务器 + rtmp 模块

    有关博客: <Windows 编译安装 nginx 服务器 + rtmp 模块>.<Ubuntu 编译安装 nginx>.<Arm-Linux 移植 Nginx> ...

  10. FastJson前置属性过滤器

    FastJson前置属性过滤器 /** * <html> * <body> * <P> Copyright 1994 JsonInternational</p ...