在linux上交叉编译opencv踩过的坑
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在linux上交叉编译opencv踩过的坑相关的知识,希望对你有一定的参考价值。
参考技术A 交叉编译opencv主要参考了这篇文章:https://blog.csdn.net/kaychangeek/article/details/80113289
一、如何配置cmake
1、where is the source code:即opencv源码路径
where to build the binaries:编译生成的库文件放在这个路径下,自己设置的,自己记住就好
2、点configure按钮,弹出配置窗口,选最后一个,然后next。
3、输入自己的交叉编译器路径,第三方库路径,finish
4、等一会,cmake会出现编译选项,自行修改
我也不太清楚这里面每一个组件的具体用途,就根据网上别人给出的选项作了修改
找到BUILD_ZLIB,勾选上
找到OPENCV_GENERATE_PKGCONFIG,勾选上。这是生成.pc文件的选项
build_opencv_gapi不勾选。不去掉会编译报错
#疑问:是不是选中了witn_xxx选项,就要同时选中build_xxx选项?前面的交叉编译第三方依赖库有用吗?
修改cmake_build_type为Release
修改cmake_install_prefix为你自己的输出文件夹
点Generate,生成Makefile
二、编译
使用gedit打开build路径下的CMakeCache.txt文件,找到CMAKE_EXE_LINKER_FLAGS选项在后面加上:-lpthread -lrt。这是一个多线程链接库
make && make install
三、配置.pc文件
成功编译的话,你会在输出路径下找到你的库文件
然后你还会在~/lib/pkgconfig下找到你的.pc文件
因为我的电脑也装了x86平台的opencv库,为了便于区分,我把这个.pc文件改成了opencv_arm.pc,然后复制进了pkgconfig的默认路径下。
四、验证
最后验证一下:在samples/CPP中找个例程编译一下:(必须加上-std=c++11,opencv必须有c++2011支持)
大功告成!!!
装这个东西一共花了我了五天时间,几乎每一步我都会遇到问题,好在有各路网友的分享我才能成功。向开源精神致敬!!!
linux 下在安装redis 踩过的坑
第一步: tar -zxvf redis-4.0.10.tar.gz
第二部: cd redis-4.0.10 目录 执行 make 编译
结果报错:
原因: 需要依赖三个包
解决: 依次安装 : yum install gcc
yum install gcc-c++
yum install tcl
安装完之后make 又报错
解决办法:执行 make MALLOC=libc 完美解决问题
具体可参考:https://blog.csdn.net/libraryhu/article/details/64920124
第三步:创建一个名为 redis的目录 方便管理 :
在redis-4.0.10 目录下 执行 make install PREFIX=/user/redis
第四部:cp redis.conf ../redis
至此redis即安装成功
启动redis: ./redis-server 前台启动
如果想后台启动的话 可以修改 redis.conf 配置文件的 daemon no 改为 daemon yes即可
此时启动命令 ./redis-server ../redis-conf
****如果想远程连接redis的话 需要修改redis.conf的两个地方:
1.注释 bind= 127.0.0.1
2.修改protected-mode yes 改为 protected-mode no
以上是关于在linux上交叉编译opencv踩过的坑的主要内容,如果未能解决你的问题,请参考以下文章