2013-02-17 169 views
2

我試圖編譯OpenBV庫,TBB支持odroid U2(使用四核ARM Cortex-A9 MPCore)。在沒有TBB的情況下編譯當前的OpenCV(來自github)沒有問題。同時,我有沒有問題,編譯TBB庫弗朗來源 - tbb41_20130116oss_src.tgz,我已經成功地建造TBB庫:OpenCV配置TBB for ARM(Ubuntu,3.0.63)

[email protected]:~/src/tbb41_20130116oss/build/linux_armv7l_gcc_cc4.6_libc2.15_kernel3.0.63_release# ls 
arena.d     concurrent_queue.o  frontend.d   libtbbmalloc.so.2  proxy.d    scheduler.o   task_v2.d     tbb_thread.d 
arena.o     concurrent_queue_v2.d frontend.o   libtbbmalloc_proxy.so proxy.o    semaphore.d   task_v2.o     tbb_thread.o 
backend.d     concurrent_queue_v2.o governor.d   libtbbmalloc_proxy.so.2 queuing_mutex.d  semaphore.o   tbb.def      tbbmalloc.d 
backend.o     concurrent_vector.d  governor.o   market.d     queuing_mutex.o  spin_mutex.d   tbb_function_replacement.d tbbmalloc.def 
backref.d     concurrent_vector.o  itt_notify.d   market.o     queuing_rw_mutex.d spin_mutex.o   tbb_function_replacement.o tbbmalloc.o 
backref.o     concurrent_vector_v2.d itt_notify.o   mutex.d     queuing_rw_mutex.o spin_rw_mutex.d  tbb_main.d     tbbmallocproxy.def 
cache_aligned_allocator.d concurrent_vector_v2.o itt_notify_malloc.d mutex.o     reader_writer_lock.d spin_rw_mutex.o  tbb_main.o     tbbvars.csh 
cache_aligned_allocator.o condition_variable.d itt_notify_malloc.o observer_proxy.d   reader_writer_lock.o spin_rw_mutex_v2.d tbb_misc.d     tbbvars.sh 
concurrent_hash_map.d  condition_variable.o large_objects.d  observer_proxy.o   recursive_mutex.d  spin_rw_mutex_v2.o tbb_misc.o     version_string.ver 
concurrent_hash_map.o  critical_section.d  large_objects.o  pipeline.d    recursive_mutex.o  task.d    tbb_misc_ex.d 
concurrent_monitor.d  critical_section.o  libtbb.so   pipeline.o    rml_tbb.d    task.o    tbb_misc_ex.o 
concurrent_monitor.o  dynamic_link.d   libtbb.so.2   private_server.d   rml_tbb.o    task_group_context.d tbb_statistics.d 
concurrent_queue.d   dynamic_link.o   libtbbmalloc.so  private_server.o   scheduler.d   task_group_context.o tbb_statistics.o 
[email protected]:~/src/tbb41_20130116oss/build/linux_armv7l_gcc_cc4.6_libc2.15_kernel3.0.63_release# 

我可以編譯我自己PROGRAMM使用g ++採用這種TBB庫,但我不能配置OpenCV的到看到這個TBB庫:

[email protected]:~/src/work/opencv/release# cmake -D CMAKE_BUILD_TYPE=RELEASE -D WITH_TBB=ON -D CMAKE_INSTALL_PREFIX=/usr/local .. 
-- Detected version of GNU GCC: 46 (406) 
-- Found OpenEXR: /usr/lib/libIlmImf.so 
-- checking for module 'gstreamer-app-0.10' 
-- package 'gstreamer-app-0.10' not found 
-- Looking for linux/videodev.h 
-- Looking for linux/videodev.h - not found 
-- Looking for linux/videodev2.h 
-- Looking for linux/videodev2.h - found 
-- Looking for sys/videoio.h 
-- Looking for sys/videoio.h - not found 
-- Looking for libavformat/avformat.h 
-- Looking for libavformat/avformat.h - found 
-- Looking for ffmpeg/avformat.h 
-- Looking for ffmpeg/avformat.h - not found 
-- checking for module 'tbb' 
-- package 'tbb' not found 
[...] 

你能解釋我怎麼能做到這一點?謝謝!

回答

1

嘗試建立與opencv包含的TBB建設(BUILD_TBB =真),對我的作品在odroid-X2:

cmake -D CMAKE_BUILD_TYPE=RELEASE -DCMAKE_INSTALL_PREFIX=/usr/local/opencv-2.4-ec15d6f383e0aae -DBUILD_TBB:BOOL="1" -DWITH_TBB:BOOL="1" .. 
make -j 4 

如果你make install的,一定要複製./lib/libtbb。所以到了可以找到的地方,否則opencv就會把它留在那裏。