openFrameworks의 크로스 컴파일 환경 설정 (Mac -> RaspberryPi)

대근은 여기 의 설명에 따라 전진하면 OK입니다.
집어넣은 곳만 해설합니다.
실시간으로 사고 팔고 있던 트윗 기록은 여기 에서.

환경



Raspberry Pi 3 Model B with Debian Jessie (이하 RPi3)
Mac OSX 10.10.5
VirtualBox5.1.12
openFrameworks0.9.8 for armv6

개요



최종적으로는 Mac상에서 움직이는 VM에 Debian을 인스톨 해 빌드 환경을 정돈해, RPi상에 있는 oF를 빌드하게 된다.

이를 위해서는 다음 작업이 필요합니다.
1. RPi에 smb 서버를 설치하여 VM에서 마운트할 수 있습니다.
2. VM의 데비안에 oF의 빌드 환경을 정돈한다.

집어 넣은 곳



데비안 라이브



여기 에서 OS 이미지를 다운로드하고 VirtualBox로 만든 Debian64bit의 가상 머신에 읽어 설정을 진행하고 있었지만, 다시 시작하면 설정이 모두 사라졌다.
아무래도 기동해 최초의 메뉴에 있는 Live 그렇다고 안해서, Install 를 선택하지 않으면 안 되는 것 같다.
htps : // 라고 해서 r. 이 m/나리아키이와타에/s타츠 s/811861496531517440

VM의 네트워크 설정



VM->RPi의 접속을 하기 위해서는, 당연히 VM과 RPi가 같은 네트워크상에 없으면 안된다.
VM이 소속하는 네트워크는 VirtualBox에서 설정한다.

할당 : VM과 Mac의 연결 형태 (?). 호스트 전용 어댑터를 선택하라는 정보도 있었지만, 필자의 환경에서는 선택할 수 없었다.
이름 : VM이 Mac의 어느 네트워크 인터페이스에 연결됩니까? 여기를 RPi가 있는 네트워크로 해야 한다. 필자는 Thunderbost Ethernet으로 유선 접속하고 있었기 때문에 이렇게 되었다. 예를 들어 RPi도 Mac도 같은 무선 네트워크에 있다면 en0: Wi-Fi(AirPort) 라든가를 선택하면 좋다.

VM의 데비안에서 ifconfig를 할 수 없다



VM의 데비안 콘솔에는 복사 할 수 없기 때문에 맥에서 터미널을 통해 SSH 연결하고 움직이고 싶지만 그 때문에 데비안의 IP 주소를 알고 싶어서 ifconfig를 입력하면 command not found아무래도 패스가 다니지 않았을 뿐이었기 때문에 /sbin/ifconfig 로 해결.
htp // d. 하테나. 네. jp/srk←r/20071004/1191461815

oF 빌드는 가능하지만 실행할 수는 없습니다.



빌드한 프로그램을 make run 하면 locale::facet::_S_create_c_locale name not valid 라는 에러가 나와 떨어진다.
확실히 원인까지 도착하지 않았지만, 이 페이지 에 있는 것처럼, RPi가 SSH 접속될 때에 클라이언트(Mac)와 locale를 맞추려고 하는 것이 원인? 같다.
RPi /etc/ssh_configSendEnv LANG~ 행을 주석 처리하여 해결.
htps : // 라고 해서 r. 이 m/나리아키이와타에/s타츠 s/812157918397140992

(2016/12/17 추가) OpenCV 관련 라이브러리를 연결할 수 없음



opencvExample을 빌드하려고하면 실패했습니다.
시행착오 실황은 여기

오류 메시지


arm-linux-gnueabihf-g++: エラー: /usr/lib/arm-linux-gnueabihf/libopencv_calib3d.so: そのようなファイルやディレクトリはありません
arm-linux-gnueabihf-g++: エラー: /usr/lib/arm-linux-gnueabihf/libopencv_contrib.so: そのようなファイルやディレクトリはありません
arm-linux-gnueabihf-g++: エラー: /usr/lib/arm-linux-gnueabihf/libopencv_core.so: そのようなファイルやディレクトリはありません
arm-linux-gnueabihf-g++: エラー: /usr/lib/arm-linux-gnueabihf/libopencv_features2d.so: そのようなファイルやディレクトリはありません
arm-linux-gnueabihf-g++: エラー: /usr/lib/arm-linux-gnueabihf/libopencv_flann.so: そのようなファイルやディレクトリはありません
arm-linux-gnueabihf-g++: エラー: /usr/lib/arm-linux-gnueabihf/libopencv_gpu.so: そのようなファイルやディレクトリはありません
arm-linux-gnueabihf-g++: エラー: /usr/lib/arm-linux-gnueabihf/libopencv_highgui.so: そのようなファイルやディレクトリはありません
arm-linux-gnueabihf-g++: エラー: /usr/lib/arm-linux-gnueabihf/libopencv_imgproc.so: そのようなファイルやディレクトリはありません
arm-linux-gnueabihf-g++: エラー: /usr/lib/arm-linux-gnueabihf/libopencv_legacy.so: そのようなファイルやディレクトリはありません
arm-linux-gnueabihf-g++: エラー: /usr/lib/arm-linux-gnueabihf/libopencv_ml.so: そのようなファイルやディレクトリはありません
arm-linux-gnueabihf-g++: エラー: /usr/lib/arm-linux-gnueabihf/libopencv_objdetect.so: そのようなファイルやディレクトリはありません
arm-linux-gnueabihf-g++: エラー: /usr/lib/arm-linux-gnueabihf/libopencv_ocl.so: そのようなファイルやディレクトリはありません
arm-linux-gnueabihf-g++: エラー: /usr/lib/arm-linux-gnueabihf/libopencv_photo.so: そのようなファイルやディレクトリはありません
arm-linux-gnueabihf-g++: エラー: /usr/lib/arm-linux-gnueabihf/libopencv_stitching.so: そのようなファイルやディレクトリはありません
arm-linux-gnueabihf-g++: エラー: /usr/lib/arm-linux-gnueabihf/libopencv_superres.so: そのようなファイルやディレクトリはありません
arm-linux-gnueabihf-g++: エラー: /usr/lib/arm-linux-gnueabihf/libopencv_ts.so: そのようなファイルやディレクトリはありません
arm-linux-gnueabihf-g++: エラー: /usr/lib/arm-linux-gnueabihf/libopencv_video.so: そのようなファイルやディレクトリはありません
arm-linux-gnueabihf-g++: エラー: /usr/lib/arm-linux-gnueabihf/libopencv_videostab.so: そのようなファイルやディレクトリはありません

정책



VM에는 /usr/lib/arm-linux-gnueabihf/라는 폴더가 원래 없다.
링커에게 /home/pi/RPI_ROOT/usr/lib/arm-linux-gnueabihf/ 를 참조 받는 곳이 골.

대처


  • OF_ROOT/libs/openFrameworksCompiled/project/makefileCommon/config.project.mk 의 230행을 이하에 옮겨놓는다.
    OF_CORE_LIBS += $(shell export PKG_CONFIG_DIR=$(PKG_CONFIG_DIR);export PKG_CONFIG_LIBDIR=$(PKG_CONFIG_LIBDIR);export PKG_CONFIG_SYSROOT_DIR=$(PKG_CONFIG_SYSROOT_DIR);$(PLATFORM_PKG_CONFIG) "$(CORE_PKG_CONFIG_LIBRARIES)" --libs)

  • VM의 /home/pi/RPI_ROOT/usr/lib/arm-linux-gnueabihf/pkgconfig/opencv.pcLibs: 행을 다음으로 바꿉니다.
    Libs: -L${libdir} -lopencv_calib3d -lopencv_contrib -lopencv_core -lopencv_features2d -lopencv_flann -lopencv_gpu -lopencv_highgui -lopencv_imgproc -lopencv_legacy -lopencv_ml -lopencv_objdetect -lopencv_ocl -lopencv_photo -lopencv_stitching -lopencv_superres -lopencv_ts -lopencv_video -lopencv_videostab
  • 좋은 웹페이지 즐겨찾기