
Nanopb는 ansi C로 작성된 코드 크기가 작은 Protocol Buffers 구현체입니다. 마이크로컨트롤러에서 사용하기에 특히 적합하며, 메모리가 제한된 모든 시스템에도 적합합니다.
nanopb 라이브러리를 사용하려면 두 가지 작업을 수행해야 합니다.
가장 쉬운 시작 방법은 "examples/simple" 프로젝트를 살펴보는 것입니다. 이 프로젝트에는 대부분의 Linux 시스템에서 바로 작동하는 Makefile이 포함되어 있습니다. 그러나 다른 종류의 빌드 시스템을 사용한다면 해당 폴더에 있는 README.txt의 수동 단계를 참조하세요.
nanopb 생성기는 Google 자체 protoc 컴파일러의 플러그인으로 구현되어 있습니다. 이 방식의 장점은 .proto 파일의 기본 파싱을 다시 구현할 필요가 없다는 것입니다. 하지만 생성기를 실행하려면 Google의 protobuf 라이브러리가 필요하다는 뜻이기도 합니다.
nanopb 바이너리 패키지(Windows, Linux 또는 Mac OS X 버전)를 다운로드한 경우, 'protoc' 바이너리가 'generator-bin' 폴더에 포함되어 있습니다. 이 경우 바로 사용할 수 있습니다. 다음 명령을 실행하기만 하면 됩니다:
generator-bin/protoc --nanopb_out=. myprotocol.proto
그러나 git 체크아웃 또는 일반 소스 배포판을 사용하는 경우, protoc 자체 버전과 Google의 protobuf 라이브러리를 직접 제공해야 합니다. Linux에서는 protobuf-compiler와 python-protobuf 패키지가 필요합니다. Windows에서는 Google의 protobuf 라이브러리를 소스에서 빌드하거나 바이너리 배포판 중 하나를 사용할 수 있습니다. 어느 경우든 별도의 protoc를 사용한다면 nanopb 생성기의 경로를 수동으로 지정해야 합니다:
protoc --plugin=protoc-gen-nanopb=nanopb/generator/protoc-gen-nanopb ...
nanopb 코어의 추가 개발을 수행하거나, 자신의 컴파일러와 플랫폼에서 기능을 검증하려면 테스트 스위트를 실행해야 합니다. 테스트 스위트의 빌드 규칙은 Scons로 구현되어 있으므로 Scons가 설치되어 있어야 합니다. 테스트를 실행하려면:
cd tests
scons
이 명령은 다양한 테스트 케이스의 진행 상황을 보여줍니다. 출력이 오류로 끝나지 않는다면 테스트 케이스가 성공한 것입니다.
참고: Mac OS X는 기본적으로 'clang'을 'gcc'로 별칭 처리하지만, 실제로는 gcc와 동일한 명령줄 옵션을 지원하지 않습니다. Mac OS X에서 테스트를 실행하려면 "scons CC=clang CXX=clang"을 사용하세요. 같은 방법으로 모든 플랫폼에서 다른 컴파일러로 테스트를 실행할 수 있습니다.