DM8168编译opencv

声明:

参考

http://blog.csdn.net/guo8113/article/details/24493571

http://blog.csdn.net/embeddedman/article/details/7416934

一、

编译环境:ubuntu14.10 32。

target: DM8168, DVRRDK4.0。

交叉编译器:arm-arago-linux-gnueabi- (交叉编译器配置略)

二、

sudo apt-get install cmake cmake-gui

官方下载源码(for linux):http://opencv.org/

三、

终端执行: cmake-gui

引用:

https://img-my.csdn.net/uploads/201203/31/1333194450_8077.png

选择源代码目录:/opt/OpenCV-3.0
选择Build目录:/opt/opencv3.0_forArm,大家根据自己的喜好设置编译目录吧。

点击Configure,保持generator为Unix Makefiles,选择Specify options for cross-compiling,点击Next
Operating System填写arm-inux
C Compilers选择DVRRDK_04.00.00.03/ti_tools/cgt_a8/arago/linux-devkit/binrm-arago-linux-gnueabi-gcc
C++ Compilers填写.......-g++
程序库的Target Root填写OpenCV安装目录,然后点击Finish

https://img-my.csdn.net/uploads/201203/31/1333195166_6558.png

目前只为尝试,编译模块为默认。

上面标注的表示opencv将要安装的目录,默认为/usr/local,为了便于管理,大家可以安装在自己设定的目录下,可以修改,同时,网上资料说:另外,我没有安装tiff图像的支持,因此去掉WITH_TIFF(出自:http://blog.csdn.net/eagelangel/article/details/7232364)。在此点击Configure,然后点击Gennerate就会生成Makefile。

四、

1)

cd /opt/opencv3.0_forArm

vi CMakeCache.txt

将所有“CMAKE_EXE_LINKER_FLAGS:STRING=”加上选项 

修改后:  CMAKE_EXE_LINKER_FLAGS:STRING=-lpthread -lrt -ldl

-ldl选项for: 

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

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

错误

2)

cd /opt/source/opencv-3.0.0 (自行对比目录)

vi  modules/core/src/parallel.cpp

参考:http://blog.csdn.net/lyk_ffl/article/details/47683549

在编译opencv 3.0 gold时,编译到大约37%时,出现

../../lib/libopencv_core.so.3.0.0: undefined reference to `parallel_pthreads_set_threads_num(int)'
../../lib/libopencv_core.so.3.0.0: undefined reference to `parallel_pthreads_get_threads_num()'
../../lib/libopencv_core.so.3.0.0: undefined reference to `parallel_for_pthreads(cv::Range const&, cv::ParallelLoopBody const&, double)'等好几个错误,困扰了好久,经多次尝试和不懈的坚持下,终于在github上找到了解决方法,现分享如下:

修改modules/core/src/parallel.cpp,添加7处删除5处(+表示要添加,-表示要删除)

132    namespace cv
133    {
134        ParallelLoopBody::~ParallelLoopBody() {}
135    +#if defined HAVE_PTHREADS && HAVE_PTHREADS
136    +    void parallel_for_pthreads(const cv::Range& range, const cv::ParallelLoopBody& body, double nstripes);
137    +    size_t parallel_pthreads_get_threads_num();
138    +    void parallel_pthreads_set_threads_num(int num);
139    +#endif
140     }
141     
142    +
143    namespace
144    {
145    #ifdef CV_PARALLEL_FRAMEWORK
    .
    .
    .

307         }
308 
309    #elif defined HAVE_PTHREADS
    -        void parallel_for_pthreads(const Range& range, const ParallelLoopBody& body, double nstripes);
310    +
311             parallel_for_pthreads(range, body, nstripes);
312 
313     #else
    .
    .
    .

367 
368    #elif defined HAVE_PTHREADS
369 
    -        size_t parallel_pthreads_get_threads_num();
    -
370         return parallel_pthreads_get_threads_num();
371 
372    #else
.
.
.
428 
429    #elif defined HAVE_PTHREADS
430 
    -    void parallel_pthreads_set_threads_num(int num);    
    -
431     parallel_pthreads_set_threads_num(threads);
432 

433    #endif


要是看的不方便的话,原始链接如下:

https://github.com/mshabunin/opencv/commit/1f983ec39c97298b0c8ce409a1cc229ecf14e55c?diff=unified

五、make

----------------------------------------------------------------- 

 后续待补




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值