tld 算法移植到arm开发板(6410) (一)
2012-02-17 09:59
351 查看
环境:ubuntu10.04 + s3c6410
交叉编译工具链:光盘自带的arm-linux-4.4.1
opencv动态库已经交叉编译好(上一篇),复制到开发板 /lib/下
1,vim打开src/下的CMakeLists.txt,增加:
set(CMAKE_SYSTEM_NAME linux)
set(CMAKE_C_COMPILER "/usr/local/arm/4.4.1/bin/arm-linux-gcc")
set(CMAKE_CXX_COMPILER "/usr/local/arm/4.4.1/bin/arm-linux-g++")
设置c,c++使用的编译器。
编译源码,报错:
为解决这个问题,在CMakeLists.txt增加:
set(CMAKE_EXE_LINKER_FLAGS "-lpthread -lrt")
这样,就可以在make的时候添加编译选项,链接相应的动态库。
然后按着README中的:
mkdir build
cd build
cmake ../src/
make
cd ../bin/
再次编译成功,得到执行文件run_tld.
2,通过U盘拷贝到ok6410上,运行./run_tld,报错:
这是由于libstdc++.so版本低。
我复制 主机上/usr/lib目录下的libstdc++.so到ok6410的 /lib目录下
再次运行,上面的问题得以解决。
同时有新的报错:
./run_tld: error while loading shared libraries: libstdc++.so.6: cannot open shared object file: No such file or directory
再查阅其他的资料,我发现我拷贝的libstdc++.so不对,应该是嵌入式对应的和 pc对应的不是一样的。
从交叉编译包目录下 /usr/local/arm/4.4.1/arm-none-linux-gnueabi/libc/usr/lib/libstdc++.so.6.0.12 拷贝到 板子的/lib下
重新建立软链接 ln -s libstdc++.so.6.0.12 libstdc++.so.6 。
问题解决,可以运行了。
算法运行后但是没有打开 摄像头设备,算法打印出“capture device failed to open! ”
明天再来解决这个问题。
交叉编译工具链:光盘自带的arm-linux-4.4.1
opencv动态库已经交叉编译好(上一篇),复制到开发板 /lib/下
1,vim打开src/下的CMakeLists.txt,增加:
set(CMAKE_SYSTEM_NAME linux)
set(CMAKE_C_COMPILER "/usr/local/arm/4.4.1/bin/arm-linux-gcc")
set(CMAKE_CXX_COMPILER "/usr/local/arm/4.4.1/bin/arm-linux-g++")
设置c,c++使用的编译器。
编译源码,报错:
/usr/local/opencv-arm/lib/libopencv_core.so: undefined reference to `pthread_key_create' /usr/local/opencv-arm/lib/libopencv_core.so: undefined reference to `pthread_getspecific' /usr/local/opencv-arm/lib/libopencv_core.so: undefined reference to `clock_gettime' /usr/local/opencv-arm/lib/libopencv_core.so: undefined reference to `pthread_setspecific'
为解决这个问题,在CMakeLists.txt增加:
set(CMAKE_EXE_LINKER_FLAGS "-lpthread -lrt")
这样,就可以在make的时候添加编译选项,链接相应的动态库。
然后按着README中的:
mkdir build
cd build
cmake ../src/
make
cd ../bin/
再次编译成功,得到执行文件run_tld.
2,通过U盘拷贝到ok6410上,运行./run_tld,报错:
./run_tld: /lib/libstdc++.so.6: version `GLIBCXX_3.4.11' not found (required by ./run_tld) ./run_tld: /lib/libstdc++.so.6: version `GLIBCXX_3.4.11' not found (required by /lib/libopencv_features2d.) ./run_tld: /lib/libstdc++.so.6: version `GLIBCXX_3.4.11' not found (required by /lib/libopencv_contrib.so)
这是由于libstdc++.so版本低。
我复制 主机上/usr/lib目录下的libstdc++.so到ok6410的 /lib目录下
再次运行,上面的问题得以解决。
同时有新的报错:
./run_tld: error while loading shared libraries: libstdc++.so.6: cannot open shared object file: No such file or directory
再查阅其他的资料,我发现我拷贝的libstdc++.so不对,应该是嵌入式对应的和 pc对应的不是一样的。
从交叉编译包目录下 /usr/local/arm/4.4.1/arm-none-linux-gnueabi/libc/usr/lib/libstdc++.so.6.0.12 拷贝到 板子的/lib下
重新建立软链接 ln -s libstdc++.so.6.0.12 libstdc++.so.6 。
问题解决,可以运行了。
算法运行后但是没有打开 摄像头设备,算法打印出“capture device failed to open! ”
明天再来解决这个问题。
相关文章推荐
- tld 算法移植到arm开发板(6410) (二)
- ARM开发板OK6410移植opencv-2.4.7库qt界面显示(附加各种问题解决方案)
- libxml2移植到OK6410 ARM开发板上...
- 算法移植arm开发板小结(一)
- 4G上网模块ME3760移植到arm开发板上(6410)
- arm开发板6410移植boa服务器
- 将lrzsz工具移植到ARM开发板 ---只通过串口实现window和ARM板之间文件互传
- TLD算法的崩溃问题
- ENC28J60 SPI网卡移植 linux 2.6.28 SAMSUNG 6410 ARM11
- ok6410 u-boot-2012.04.01移植五支持DM9000
- 移植vsftpd到ARM开发板
- OK6410-A开发板学习-⑤uboot移植(3)DM9000 网卡驱动移植
- 移植MATLAB神经网络算法到MFC平台
- TLD算法概述(二)
- 比微软kinect更强的视频跟踪算法--TLD跟踪算法介绍
- 6410移植linux3.3.5
- QT6410移植linux-2.6.39 笔记(三)-构建cramfs根文件系统(2)
- 比微软kinect更强的视频跟踪算法--TLD跟踪算法介绍 .
- 庖丁解牛TLD(三)——算法初始化 .
- OK6410 linux内核移植