日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

OpenCV在ARM上的移植

發(fā)布時間:2025/7/25 编程问答 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 OpenCV在ARM上的移植 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

OpenCV在ARM上的移植

與X86 Linux類似,請參考: Linux 下編譯安裝OpenCV 本文在此基礎(chǔ)上進(jìn)行進(jìn)一步操作。

網(wǎng)絡(luò)上很多移植編譯的方法比較老,多數(shù)針對OpenCV 1.0,而且方法很麻煩,不仔細(xì)操作很容易出錯,我的方法是盡可能的利用現(xiàn)成的工具,盡量圖形化界面配置操作,方便編譯配置。

軟硬件環(huán)境

宿主機(jī):Ubuntu 12.04 32bit

開發(fā)板:OK6410

OpenCV: 2.4.3

其他:

arm-linux-g++ 4.3.2 / arm-linux-gcc 4.3.2

CMake-gui 2.8.10

Cmake的安裝

OpenCV 2.2以后版本需要使用Cmake生成makefile文件,因此需要先安裝cmake。

ubuntu下安裝cmake比較簡單,

apt-get install cmake

如果覺得自帶的版本不符合要求,可以下載安裝包。

下載最新版的安裝包:

http://www.cmake.org/cmake/resources/software.html

這里下載已經(jīng)編譯好的,這樣只需要解壓至需要的目錄下即可使用:

tar zxvf cmake-2.8.10.2-Linux-i386.tar.gz –C /usr/local/

設(shè)置環(huán)境變量:

sudo gedit /home/emouse/.bashrc

在打開的文件后添加:

export PATH=$PATH:/usr/local/cmake-2.8.10.2-Linux-i386/bin

查看版本,測試是否安裝成功:

root@emouse:/home# cmake --version
cmake version 2.8.10.2

轉(zhuǎn)載注明:http://emouse.cnblogs.com/?

OpenCV 的交叉編譯

解壓OpenCV壓縮文件,得到文件夾。

#cmake-gui 打開cmake的gui界面,開始進(jìn)行配置,配置過程如下圖所示:

1、選定解壓后的源文件和將要編譯的文件目錄,這個自己之前先建好。

2、點擊Configure 選擇工程類型,選擇交叉編譯,點擊下一步。

3、在下圖的界面中選擇交叉編譯工具鏈以及庫文件相關(guān)信息,按照圖中的進(jìn)行填寫,其中紅框部分為交叉編譯工具鏈的實際路徑,根據(jù)宿主機(jī)實際安裝路徑填寫。

4、點擊Finsh完成初步配置。

5、此時主界面如下圖所示,這時Cmake會讀取程序的一些配置信息,可以再下圖紅框中對每一個編譯選項進(jìn)行修改,這里去掉WITH_TIFF支持并修改安裝路徑,其他配置可以根據(jù)需求選擇。

通過終端進(jìn)入OpenCV-ARM目錄,make編譯,編譯過程中出錯如下:

Linking CXX executable ../../bin/opencv_perf_core ../../lib/libopencv_highgui.so: undefined reference to `_TIFFmemcpy' ../../lib/libopencv_core.so: undefined reference to `pthread_spin_init' ../../lib/libopencv_core.so: undefined reference to `pthread_spin_unlock' ../../lib/libopencv_highgui.so: undefined reference to `_TIFFmemset' ../../lib/libopencv_highgui.so: undefined reference to `_TIFFwarningHandler' ../../lib/libopencv_core.so: undefined reference to `pthread_key_create' ../../lib/libopencv_highgui.so: undefined reference to `_TIFFmemcmp' ../../lib/libopencv_core.so: undefined reference to `pthread_getspecific' ../../lib/libopencv_highgui.so: undefined reference to `_TIFFfree' ../../lib/libopencv_ts.so: undefined reference to `pthread_key_delete' ../../lib/libopencv_core.so: undefined reference to `pthread_spin_lock' ../../lib/libopencv_highgui.so: undefined reference to `_TIFFmalloc' ../../lib/libopencv_highgui.so: undefined reference to `TIFFOpen' ../../lib/libopencv_core.so: undefined reference to `pthread_spin_destroy' ../../lib/libopencv_core.so: undefined reference to `pthread_once' ../../lib/libopencv_highgui.so: undefined reference to `_TIFFrealloc' ../../lib/libopencv_core.so: undefined reference to `clock_gettime' ../../lib/libopencv_core.so: undefined reference to `pthread_spin_trylock' ../../lib/libopencv_highgui.so: undefined reference to `_TIFFerrorHandler' ../../lib/libopencv_core.so: undefined reference to `pthread_setspecific' collect2: ld returned 1 exit status make[2]: *** [bin/opencv_perf_core] 錯誤 1 make[1]: *** [modules/core/CMakeFiles/opencv_perf_core.dir/all] 錯誤 2 make: *** [all] 錯誤 2

關(guān)于TIFF的報錯,是因為一開始我勾選了TIFF的支持,而這個支持是需要宿主機(jī)中安裝相應(yīng)的程序的,所以報錯,可以打開cmake 去掉勾選。 其他報錯經(jīng)過查找找到以下解釋:

編譯時發(fā)現(xiàn)如下錯誤:
Linking CXX executable ../../bin/opencv_createsamples
../../lib/libcxcore.so: undefined reference to `clock_gettime'
../../lib/libcxcore.so: undefined reference to `pthread_key_create'
../../lib/libcxcore.so: undefined reference to `pthread_getspecific'
../../lib/libcxcore.so: undefined reference to `pthread_setspecific'

原因是cmake不認(rèn)識我定義的arm-linux系統(tǒng)標(biāo)記,沒有加上庫pthread和rt的鏈接選項

此時需要修改CMakeCache.txt,CMAKE_EXE_LINKER_FLAGS原來為空,加上-lpthread -lrt

按照此方法更改對應(yīng)文件,如下圖所示:

此處在CMakeCache.txt 的173行,添加-lpthread -lrt,然后繼續(xù)編譯。編譯過程十來分鐘左右,編譯成功結(jié)果如下:

運行make install進(jìn)行安裝,在我的安裝目錄中就會多出以下幾個文件夾:

?

lib文件夾即生成的庫文件,拷貝到開發(fā)板對應(yīng)目錄即可。

★emouse 思·睿博客文章★原創(chuàng)文章轉(zhuǎn)載請注明:http://emouse.cnblogs.com

總結(jié)

以上是生活随笔為你收集整理的OpenCV在ARM上的移植的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。