首页 > 系统相关 >Ubuntu12.04 交叉编译 opencv-2.4.11过程

Ubuntu12.04 交叉编译 opencv-2.4.11过程

时间:2023-07-10 21:12:58浏览次数:44  
标签:11 sudo Ubuntu12.04 opencv ubuntu arm 2.4

1.Ubuntu换源
可换源有很多,不过要下载12.04版的,好像不多。
1.1先备份源

sudo cp /etc/apt/sources.list /etc/apt/sources.list.backup

1.2由于12.04不受支持了,12.04相关的这些包的资源被移到了old-releases.ubuntu.com域名下:

sudo gedit /etc/apt/sources.list

将下面内容插入进去,并保存

deb http://old-releases.ubuntu.com/ubuntu precise main universe restricted multiverse
 
deb http://old-releases.ubuntu.com/ubuntu precise-security universe main multiverse restricted
 
deb http://old-releases.ubuntu.com/ubuntu precise-updates universe main multiverse restricted
 
deb http://old-releases.ubuntu.com/ubuntu precise-proposed universe main multiverse restricted

1.3更新一下

sudo apt-get update

2.安装cmake-qt-gui
2.1 命令行安装

sudo apt-get install cmake-qt-gui

2.2运行 cmake-gui(任意界面输入即可)

3.下载opencv-2.4.11
opencv-2.4.11

拷贝到目标文件夹下,然后命令行进入该目录
3.1解压

tar -zxvf opencv-2.4.11.tar.gz

4 cmake-gui 配置
4.1 在opencv-2.4.11中创建build install

mkdir arm_build 
mkdir arm_install
cd arm_build

4.2在cmake-gui中配置
配置代码源和build目录

点击configure

任意命名opearting system 配置g++和gcc

点击finishi后软件会配置一段时间,右下角会有进度条

配置完成后在search栏中输入flags,并在勾选advanced,然后按下图进行配置。即将CMAKE_CXX_FLAGS和CMAKE_C_FLAGS的值设为-O3 -fPIC -W -Wall,将CAMKE_EXE_LINKER_FLAGS的值设为-lpthread -lrt -ldl。其实就是配置了编译、链接选项,需要进一步了解其含义可以百度gcc g++ 后的-参数的含义

然后在search框搜索zlib,在BUILD_ZLIB后打勾

修改CMAKE_INSTALL_PREFIX,默认usr/local,修改成opencv-2.4.11/arm_install目录

勾选BUILD_opencv_world库

在CMAKE_BUILD_TYPE后填上:RELEASE

再次点击configure,等提示done后,点击Generate

5.命令行cmake
5.1在opencv-2.4.11/arm_build目录下执行

sudo make -j4

5.2 安装opencv
继续在opencv-2.4.11/arm_build目录下输入

sudo make install

这样就能在open-2.4.11/arm_install中看到lib\include等目录了,直接拷贝到项目,引用即可。

避坑1:
在sudo make -j4的过程中,opencv_world总是报错项目未找到.o。我找到目录,明明是.obj啊,
原来在opencv_world的cmakelists.txt文件中,有一段set(objpath0 "CMakeFiles/<MODULE_NAME>.dir/<RELATIVE_SRC_NAME>.o"),既然我这生成的是.obj,就改成.obj吧
避坑2:
在sudo make -j4过程中,oencv_world项目,总是报 ////opencl-kernel.cpp.obj未找到,于是在arm_build/modules/world中修改文件world_objects.list和world_objects.rsp,把里面/__/路径的,全部改成正确的路径。

可能上面的坑,可以通过配置文件CMakeLists来解决,一想到又要学习语法,先这么硬干吧。
大功告成!!!

引用:
https://blog.csdn.net/qq_50839755/article/details/123998946
https://blog.csdn.net/Flag_ing/article/details/109508374
https://blog.csdn.net/spiremoon/article/details/105923235

标签:11,sudo,Ubuntu12.04,opencv,ubuntu,arm,2.4
From: https://www.cnblogs.com/kafeibuhuizui/p/17542211.html

相关文章

  • 20230710-20230711 数论
    数论被薄纱了/kk授课老师:南京大学-朱富海教授20230710裴蜀定理对于给定不全为零的整数的\(a,b\)一定存在一对整数\(x,y\)满足\(ax+by=gcd(a,b)\)。证明:\(a==0\)\(or\)\(b==0\)显然成立;设\(gcd(a,b)=d\),即求证存在\(x,y\)满足\(ax+by=d\),等式两边同时除......
  • Anaconda使用conda安装opencv的正确命令
    很多教程是使用pip安装opencv的,执行的命令是:pipinstallopencv-python 但是我们的环境是Anaconda,使用conda安装opencv的命令是:condainstall-cconda-forgeopencv 参考资料:https://anaconda.org/conda-forge/opencvTRANSLATEwithxEnglishArabic......
  • Linux 内核0.11 系统调用详解(上)
    备注:本文通过三个问题,引出Linux内核0.11的系统调用。操作系统为什么要引出系统调用?回答这个问题前,请先参看如下图:由图可以看出,从操作系统的角度来看,一台计算机主要分为两级:用户级以及内核级,系统调用主要作用就是连接用户级和内核级的“插座”。上层用户的许多对计算机硬件的操作,......
  • 如何使用C++11 STD::THREAD设置堆栈大小?
    本教程将介绍如何使用C++11std::thread设置线程的堆栈大小。C++11std::thread是一种轻量级的多线程实现,它的灵活性使得它成为一个流行的选择。但是,在某些情况下,您可能需要设置线程的堆栈大小来满足您的需求。在开始本教程之前,我们假设您已经熟悉了C++11std::thread的基础知识......
  • t113-c-led驱动篇(调用设备树)
    既然已经学会了调用驱动,那么接下来简单点个灯查看led所在寄存器我板子的led所控制的是pd22,所在寄存器应该是0x02000098然而这和我在设备树上找到的地址有出入,很奇怪,那就不管这个了自己添加一个吧。自己在board.dts上加一个ledio:我们看见这里有个&pio,而pio又是在dtsi中的so......
  • 如何用C++11实现观察者模式
    观察者模式是一种设计模式,定义了对象之间的一对多关系。当一个对象状态发生改变时,它的依赖者都会收到通知并自动更新。在C++11中,可以通过以下方式实现观察者模式:首先,我们需要创建一个观察者接口,其中包含一个更新方法。这个接口可以被多个观察者类实现,从而实现多态。#include<iostr......
  • Selenium基础:其他设置 11
    1、限制页面加载时间设置页面加载限制时间:set_page_load_timeout(time)#-*-coding:utf-8-*-fromseleniumimportwebdriverfromselenium.common.exceptionsimportTimeoutExceptiondriver=webdriver.Chrome()#限制页面加载时间为30sdriver.set_page_load_timeout(30......
  • tomcat安装solr-8.11.2
    tomcat安装solr-8.11.2下载solr#解压tar-xzfsolr-8.11.2.tgz#制作war包cdsolr-8.11.2/server/solr-webapp/webapp/jarcvfsolr.war./*#将制作的war包复制到tomcat的webapps目录下cpsolr.war/tmp/apache-tomcat-9.0.75/webapps/#启动tomcat自动解压solr.warcd......
  • 2023ACM暑假训练day 11 动态规划
    目录DAY11动态规划训练情况简介题题题题DAY11动态规划训练地址:传送门训练情况简介2023-07-1009:30:17星期一早上:下午:晚上:题题意:思路:题题意:思路:题题意:思路:题题意:思路:......
  • A011 《千变万化》编程 源码
    一、课程介绍本节课用嵌套for循环、input()获取用户输入、int()转换为整数类型,绘制一个由正多边形组成的花朵。二、重难点解析数据类型数据有类型区分,常用的有整数类型和字符串类型。像10、37、-17、0等数字就是整数类型;而'3'、'27'、'一语惊醒梦中人'、'yyjxmzr'等被引号......