opencv2.4.9在Hi3531开发板上移植

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

opencv2.4.9下载不用说了。

Ubuntu12.04虚拟机安装的+arm-hisiv200-linux交叉编译器+cmake-gui(2.8.7)

参考:/luotuo44/article/details/8958990

/s/blog_92942dba0101d1wj.html

一、建立编译环境配置

进入opencv-2.4.9目录建立release-hisiv200目录存放编译过程中文件。

#cd opencv-2.4.9

#mkdir release-hisiv200

#cd release-hisiv200

打开cmake-gui,进行博客中的配置:#cmake-gui

在configure时选择CMAKE_SYSTEM_NAME:arm-hisiv200-linux

C:选择/opt/hisi-linux/x86-arm/arm-hisiv200-linux/target/bin/arm-hisiv200-linux-gcc

C++:选择/opt/hisi-linux/x86-arm/arm-hisiv200-linux/target/bin/arm-hisiv200-linux-g++ 修改安装目录:CMAKE_INSTALL_PREFIX:/opt/2.4.9-arm-hisiv200

进行编译:make

二、出现问题:

1、/usr/lib/libImath.so: could not read symbols: File in wrong format

collect2: ld returned 1 exit status

make[2]: *** [lib/libopencv_highgui.so] 错误1

make[1]: *** [modules/highgui/CMakeFiles/opencv_highgui.dir/all] 错误2

make: *** [all] 错误2

主要opencv编译OPENEXR时要用到libImath.so,所有我就把那个取消了,然后编译就没出现过这个问题。

蓝色的部分不要选,还有下面这个也别选:

蓝色的部分不要选,还有下面这个也别选:

接在make:

2、Linking CXX executable ../../bin/opencv_test_calib3d

../../lib/libopencv_core.so: undefined reference to `pthread_key_create'

../../lib/libopencv_core.so: undefined reference to `pthread_getspecific'

../../lib/libopencv_ts.so: undefined reference to `pthread_key_delete'

../../lib/libopencv_core.so: undefined reference to `pthread_once'

../../lib/libopencv_core.so: undefined reference to `clock_gettime'

../../lib/libopencv_core.so: undefined reference to `pthread_setspecific'

collect2: ld returned 1 exit status

make[2]: *** [bin/opencv_test_calib3d] Error 1

make[1]: *** [modules/calib3d/CMakeFiles/opencv_test_calib3d.dir/all] Error 2

make: *** [all] Error 2

解决方案:修改release-hisiv200目录下的CMakeCache.txt,CMAKE_EXE_LINKER_FLAGS原来为空,加上-lpthread -lrt,如下图:

3、../../lib/libopencv_ocl.so:undefined reference to 'dlopen'

取消掉上面两个复选框。

接在编译。完成。

三、安装opencv库

#make install

在/opt/2.4.9-arm-hisiv200/目录下生成相应目录:

四、配置编译环境

如果没有安装pkgconfig则进行安装

参考/luotuo44/article/details/24836901

在/opt/2.4.9-arm-hisiv200/目录下建立pkgconfig目录,进入目录建立hisiv200-opencv.pc文件#gedit hisiv200-opencv.pc

输入图中的内容。

编辑库连接配置文件

加入下面图中一行

配置PKG_CONFIG_PATH

#gedit /etc/bash.bashrc

最后一行加入上图PKG_CONFIG_PATH配置。

#source /etc/bash.bashrc

五、编译测试程序

测试程序picLike.cpp内容为:

问题:

将opencv库文件拷贝到

/opt/hisi-linux/x86-arm/arm-hisiv200-linux/target/lib目录下

重新编译,问题解决。

六、在Hi3531上进行测试

1、因为hi3531空间不足,挂载程序运行。

#

2、配置环境变量

3、进入可执行程序目录执行程序

4、解决问题:从../../lib/libopencv_core.so建立了../../lib目录拷贝opencv库文件到此目录下,运行程序出现错误:Segmentation fault

5、将程序拷贝到相对于本来opencv库目录相对的目录下。

执行程序:

相关文档
最新文档