반응형
임베디드 타겟보드에 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 정도
약간의 테스트결과 임베디드환경에서 충분히 사용할만하다.
반응형