Multiwii/Odroid-U3

ARM OpenCV 포팅법

Ohjeonghak 2014. 10. 13. 19:44
반응형

우선 관련 패키지부터 설치를 한다.

 sudo apt-get install build-essential

 sudo apt-get install gcc-arm-linux-gnueabihf

 sudo apt-get install g++-arm-linux-gnueabihf


OpenCV를 다운받고 압축을 푼다. 그리고 압축을 푼 폴더 안의 "/platforms/linux/arm-gnueabi.toolchain.cmake" 파일을 편집해줘야 한다. 내용 편집을 위해 먼저 설치된

"arm-linux-gnueabihf-g++", "arm-linux-gnueabihf-gcc"의 버전을 확인해준다.

 sudo arm-linux-gnueabihf-gcc --version

 sudo arm-linux-gnueabihf-g++ --version


그리고 버전을 확인 한 후 내용을 편집해 준다.

 sudo gedit ./platforms/linux/arm-gnueabi.toolchain.cmake

 

gedit가 열리면 다음 부분을 찾아서 밑줄 친 부분에 버전을 적어준다.

 "set(GCC_COMPILER_VERSION "4.8" CACHE STRING "GCC Compiler version")"


그리고 "set(CMAKE_C_FLAGS "" CACHE STRING "c flags")" 내용을 찾아서 보드에 맞게 수정해준다. 나는 odroid u3이므로 다음과 같이 수정한다.

 set(CMAKE_C_FLAGS "-mcpu=cortex-a9 -O3 -mfloat-abi=hard -ftree-vectorize -ftree-vectorizer-verbose=9" CACHE STRING "c flags")


다음으로 압축을 푼 opencv 폴더 안에 build 디렉토리를 만들고 들어가서 Cmake를 한다.

 mkdir build

 cd build

 cmake -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 ../


Cmake 작업이 다되었다면 make 와 make install을 해준다.

 sudo make && sudo make install


마지막으로 /usr 에 arm-linux-gnueabi 와 arm-linux-gnueabihf 폴더의 include, lib에 build/install의 include 내용과 lib 내용을 각각 복사해서 넣어주거나 소프트링크 시켜준다


복사 방법

 sudo cp /home/사용자 계정/Documents/opencv-버전/build/install/bin/* /usr/arm-linux-gnueabihf/bin/

 sudo cp /home/사용자 계정/Documents/opencv-버전/build/install/include/* /usr/arm-linux-gnueabihf/include/

 sudo cp /home/사용자 계정/Documents/opencv-버전/build/install/lib/* /usr/arm-linux-gnueabihf/lib/


소프트링크 방법

 sudo ln -s /home/사용자 계정/Documents/opencv-버전/build/install/bin/* /usr/arm-linux-gnueabihf/bin/

 sudo ln -s /home/사용자 계정/Documents/opencv-버전/build/install/include/* /usr/arm-linux-gnueabihf/include/

 sudo ln -s /home/사용자 계정/Documents/opencv-버전/build/install/lib/* /usr/arm-linux-gnueabihf/lib/


eclipse 에서 프로젝트 설정의 arm c compiler 옵션 추가

arm 크로스 컴파일러로 설정한 프로젝트의 properties 창을 연다.

C/C++build -> Setting -> Tool Settings -> Cross arm c linker -> Libraries

opencv_highgui, opencv_core 을 추가한다.

반응형

'Multiwii > Odroid-U3' 카테고리의 다른 글

Odroid-U3 를 위한 linux Desktop 크로스컴파일  (0) 2014.10.13
ARM OpenSSL 포팅  (0) 2014.10.13