SW 개발

[Linux] mosquitto 크로스컴파일하기 : 임베디드용 mqtt

. . . 2017. 11. 20. 13:41
반응형

임베디드 타겟보드에 mqtt 서비스를 올리기 위한 준비과정을 정리한다.

소스 다운로드받기

https://github.com/eclipse/mosquitto

위의 repo 에서 통째로 다운로드한다.

빌드준비

빌드 중간에 man page 를 만들기위한 패키지들이 있다.

다음의 패키지를 설치해준다.

sudo apt-get install xsltproc docbook-xsl 

빌드하기 

cmakelist 가 있는것을 보면, cmake 툴을 통해서 빌드할수있는것으로 보인다.

하지만, 바로 make 하는것이 더 간단하다.


다음과 같이 크로스컴파일용 bash 스크립트를 작성한다.

#!/bin/bash

INSTALL_PATH=${PWD}/output_dir

mkdir ${INSTALL_PATH}
make clean
make CC=arm-none-linux-gnueabi-gcc CXX=arm-none-linux-gnueabi-g++ AR=arm-none-linux-gnueabi-ar WITH_UUID=no WITH_TLS=no WITH_SRV=no WITH_DOCS=no
make install CC=arm-none-linux-gnueabi-gcc CXX=arm-none-linux-gnueabi-g++ AR=arm-none-linux-gnueabi-ar WITH_UUID=no WITH_TLS=no WITH_SRV=no WITH_DOCS=no DESTDIR=${INSTALL_PATH}
  • 위의 추가옵션의 경우 openssl / dhcp 관련서비스 / tls / uuid 등의 기능들을 빼놓고 빌드한것이다.
  • 만약, 각종 옵션을 다 켜려면 각 library 들도 포팅해야한다.
  • 빌드결과는 INSTALL_PATH 폴더에 떨어진다.

옵션관련 참고사항

make 시의 각종 옵션의 경우 config.mk 에 정의되어있다.

 -> 때문에 make 시에 설정한 각종 옵션들은 config.mk 를 보면된다.

빌드결과

  • 라이브러리 크기 : 약 140 ~ 200K 정도
약간의 테스트결과 임베디드환경에서 충분히 사용할만하다.



반응형