백곡시스템

우분투-ARM opencv 크로스컴파일 ( 라즈베리파이 3 )

출처: http://deepbugging.tistory.com/entry/우분투ARM-크로스컴파일 [딥버깅 – Deepbugging]

1. OPENCV를 다운받고 압축을 푼다. – 다른 블로그나 사이트에 많이 있음.

2. gcc 버전에 맞게 수정

“set(GCC_COMPILER_VERSION “4.8” CACHE STRING “GCC Compiler version”)”

( 컴파일러 버전 입력 )

set(CMAKE_C_FLAGS “-mcpu=cortex-a53 -mfpu=vfp -mfloat-abi=hard” CACHE STRING “Flags for Raspberry PI 3”)

set(CMAKE_CXX_FLAGS “${CMAKE_C_FLAGS}” CACHE STRING “Flags for Raspberry PI 3”)

(라즈베리파이 3 type B)  ( 자신이 사용할 보드에맞게 수정)

3. 압축을 푼 opencv 로 이동

mkdir build

cd build

 

4. opencv – cmake 설정

( 설치할 경로)

cmake -DCMAKE_INSTALL_PREFIX=/usr/local/arm/opencv -DWITH_FFMPEG=ON -DWITH_JASPER=ON -DWITH_JPEG=ON -DWITH_PNG=ON -DWITH_TIFF=ON -DWITH_VFW=ON -DWITH_WEBP=ON -DWITH_TBB=ON -DWITH_V4L=ON -DWITH_OPENEXR=ON -DWITH_OPENGL=ON -DBUILD_JASPER=ON -DBUILD_JPEG=ON -DBUILD_PNG=ON -DBUILD_OPENEXR=ON -DBUILD_PACKAGE=ON -DBUILD_TIFF=ON -DBUILD_WITH_DEBUG_INFO=ON -DBUILD_WITH_STATIC_CRT=ON -DBUILD_ZLIB=ON -DBUILD_EXAMPLES=ON -DBUILD_NEW_PYTHON_SUPPORT=ON -DINSTALL_PYTHON_EXAMPLES=ON -DINSTALL_C_EXAMPLES=ON -DSOFTFT=ON -DUSE_NEON=ON -DCMAKE_TOOLCHAIN_FILE=../platforms/linux/arm-gnueabi.toolchain.cmake ../

( cross compile 하기위한 설정 )
5. make 하기
sudo make && sudo make install
6. 경로 복사
sudo cp -r /usr/local/arm/opencv/bin/* /usr/arm-linux-gnueabihf/bin/
sudo cp -r /usr/local/arm/opencv/include/* /usr/arm-linux-gnueabihf/include/
sudo cp -r /usr/local/arm/opencv/lib/* /usr/arm-linux-gnueabihf/lib/
설치경로                            목적지 ( cross complier gcc directroy)
 
이클립스에서 크로스컴파일 하기
eclipse 프로젝트 property 설정 (build 설정 추가는 자유)
Project property – C/C++ Build – Setting – GCC C++ Compiler
-Command : arm-linux-gnueabihf-g++
> Includes – Include path
(설치폴더)/include
(설치폴더)/include/opencv
(설치폴더)/include/opencv2
Project property – C/C++ Build – Setting – GCC C Compiler – Command : arm-linux-gnueabihf-gcc
> Includes – Include path
(설치폴더)/include
(설치폴더)/include/opencv
(설치폴더)/include/opencv2
Project property – C/C++ Build – Setting – GCC C++ Linker- Command : arm-linux-gnueabihf-g++
> Libraries – Libraries (사용할 라이브러리 추가 )
 –> 3. 버전에서는 라이브러리가 약간 바뀌었으므로 확인 한 후 추가 해야함
    opencv_core
    opencv_imgproc
    opencv_highgui
    opencv_ml
    opencv_video
    opencv_features2d
    opencv_calib3d
    opencv_objdetect
    opencv_flann
> Libraries – Libraries search path
(설치폴더)/lib
Project property – C/C++ Build – Setting – GCC Assembler – Command : arm-linux-gnueabihf-as
============================================================================
이클립스를 사용하지 않고 터미널 창에서 하려면 라이브러리를 옵션에 추가해서 컴파일해주면된다
예를들면
arm-linux-gnueabihf-g++ test.cpp -o test pkg-config --libs opencv
이런식으로 하거나
-I[include경로], -L[라이브러리경로],-l[라이브러리명] 을 일일히 추가해준다.
opencv 소스를 컴파일 할때 포맷이 다르다는 오류가 많이 나올것이다.
이럴때는 arm용 opencv 라이브러리 경로로 추가해서 사용해야한다.
pkg-config --libs opencv를 사용하고싶다면
해당 파일에 경로가 알맞게 들어가있는지 확인하고 사용하자.

댓글 남기기

Close Menu