Hi3519V101移植opencv-2.4.9
来源:互联网 发布:马扎克系统编程 编辑:程序博客网 时间:2024/05/16 23:56
目录
- 目录
- 前言
- 环境
- 交叉编译
- 总结
- 补充
前言
从来不懂图像算法,但是为了功能,只能硬着头皮研究opencv,工作了才知道其实生活才刚刚开始,未来是坎坷而光明的吧!
本篇博客来自参考易百纳论坛
环境
PC:Ubuntu16.04
交叉编译工具链:arm-hisiv500-linux
OpenCV版本:opencv-2.4.9.zip
交叉编译
- 解压:
unzip opencv-2.4.9.zip
cmd:tree -L 1 . ├── 3rdparty ├── apps ├── cmake ├── CMakeLists.txt ├── data ├── doc ├── include ├── index.rst ├── LICENSE ├── modules ├── platforms ├── README.md └── samples
安装cmake-gui
sudo apt-get install cmake-gui
创建build目录用于编译、output目录用于输出安装目录:
mkdir /opt/opencv2.4.9/build mkdir /opt/opencv2.4.9/output
执行
cmake-gui
- 出现如下界面:
- 点击
Browse Source
选择刚刚解压的opencv2.4.9目录 - 点击
Browse Build
选择刚刚建立的opencv2.4.9/build目录 - 点击
configure
,此时出现对话框: - 选择
Specify options for cross-compiling
,next
- 在Operating System填写 arm-hisiv500-linux
C填写arm-hisiv500-linux-gcc
C++填写arm-hisiv500-linux-g++ 点击
configure
,直到出现Configuration done
问题:
Error in configuration process,project files may be invalid
解决方法:
在search
中,取消选项:WITH_CUDA
和WITH_OPENCL
,再次configure
就不会出现问题。
参考链接在出现的列表中,
search
对应的文本框中输入CMAKE_INSTALL_PREFIX
,修改为自己的output目录,我的目录是/opt/opencv2.4.9/output
,如下:Generate——->Generation done,即可关闭cmake软件
- 出现如下界面:
- 进入build目录执行make
cd /opt/opencv2.4.9/build
make
问题1:
../../lib/libopencv_core.so:对‘pthread_once’未定义的引用 ../../lib/libopencv_core.so:对‘pthread_spin_lock’未定义的引用 ../../lib/libopencv_core.so:对‘pthread_spin_unlock’未定义的引用 ../../lib/libopencv_core.so:对‘pthread_spin_init’未定义的引用 ../../lib/libopencv_core.so:对‘pthread_spin_trylock’未定义的引用 ../../lib/libopencv_core.so:对‘pthread_spin_destroy’未定义的引用
解决方法:
vi CMakeCache.txt#找到CMAKE_EXE_LINKER_FLAGS,修改如下:CMAKE_EXE_LINKER_FLAGS:STRING= -lpthread -lrt
make install
之后,在/opt/opencv2.4.9/output
目录下会生成安装编译好的库
总结
遇到Error in configuration process,project files may be invalid
问题的时候还以为是cmake-gui的问题,以前编译成功后没有记录,结果忘记怎么解决这个问题了,甚至还重载了Ubuntu16.04,所以不做记录真的是一件很没有效率的事情,谨记教训,勇敢前行!
补充
问题2:gnueabihf/bin/ld: ../../3rdparty/lib/libzlib.a(crc32.obj): relocation R_ARM_THM_MOVW_ABS_NC against
a local symbol’ can not be used when making a shared object; recompile with -fPIC
arm-linux-gnueabihf-gcc
博主记:2017/12/25,使用编译opencv2.4.9时出现这个问题。
-fPIC
原因:zlib编译需要添加选项
vi 3rdparty/zlib/CMakeFiles/zlib.dir/flags.make
解决方法:
C_FLAGS=-W -Wall…
添加:为
C_FLAGS = -O3 -fPIC -W -Wall…`
同理,后面编译出现同样问题如下:
relocation R_ARM_THM_MOVW_ABS_NC against `a local symbol' can not be used when making a shared object; recompile with -fPIC
解决方法同上。注意:修改有一定要make clean
后再重新make -j4
- Hi3519V101移植opencv-2.4.9
- Hi3519V101上移植QT4.8.6
- Hi3519V101移植SDL+FreeType+SDL_ttf
- Opencv-2.4.9 在 mini2440 上的移植
- opencv移植
- opencv 移植
- OpenCV移植
- OpenCV移植
- OpenCV移植
- 移植opencv-2.4.6到tiny210v2
- 移植opencv-2.4.6到tiny210v2
- 移植OpenCV-2.4.5编译成功
- Fedora22 下移植opencv-2.4.10
- OpenCV 2.4.9在Ubuntu 12.04下的安装 && 移植到ARM上
- hi3519v101 sdk 编译错误
- hi3519v101 nandflash 调试
- 海思hi3519v101 串口调试
- opencv移植dsp
- 二分答案模板
- SQL-数据和表
- 313. Super Ugly Number
- orakill 使用
- Bailian4146 Bailian2747 数字方格【暴力】
- Hi3519V101移植opencv-2.4.9
- python学习
- java5的新特性fore和可变参数
- 爬虫Scrapy-02入门程序
- Spring入门(一)——基本概念学习
- vue---vue2.x自定义plugin,给vue添加全局方法,原型上增加全局方法
- 《UNIX网络编程 卷1》一、环境配置
- 线程与进程区别
- 【重构练习】大二作业 第0部分