Nanopb는 ansi C로 구현된 작은 코드 크기의 프로토콜 버퍼입니다. 특히 마이크로컨트롤러에 사용하기에 적합하지만 메모리가 제한된 모든 시스템에도 적합합니다.
nanopb 라이브러리를 사용하려면 다음 두 가지 작업을 수행해야 합니다.
protoc
사용하여 nanopb용 .proto 파일을 컴파일합니다.시작하는 가장 쉬운 방법은 "examples/simple"에서 프로젝트를 연구하는 것입니다. 여기에는 대부분의 Linux 시스템에서 직접 작동하는 Makefile이 포함되어 있습니다. 그러나 다른 종류의 빌드 시스템의 경우 해당 폴더에 있는 README.txt의 수동 단계를 참조하세요.
프로토콜 버퍼 메시지는 모든 프로토콜 버퍼 라이브러리와 호환되는 표준 형식을 따르는 .proto
파일에 정의됩니다. nanopb와 함께 사용하려면 여기에서 .pb.c
및 .pb.h
파일을 생성해야 합니다.
python generator/nanopb_generator.py myprotocol.proto # For source checkout
generator-bin/nanopb_generator myprotocol.proto # For binary package
(참고: nanopb-0.3.9.x 및 이전 버전에 대한 지침은 여기에서 해당 특정 버전의 설명서를 참조하세요.)
Windows, Linux 및 Mac OS X용 바이너리 패키지에는 Python, python-protobuf 라이브러리 및 protoc를 포함하여 필요한 모든 종속성이 포함되어 있어야 합니다. git checkout이나 일반 소스 배포판을 사용하는 경우 Python을 별도로 설치해야 합니다. Python이 있으면 pip install --upgrade protobuf grpcio-tools
사용하여 다른 종속성을 설치할 수 있습니다.
.options
파일을 생성하여 헤더 생성을 추가로 사용자 정의할 수 있습니다. 자세한 내용은 설명서를 참조하세요.
nanopb 코어의 추가 개발을 수행하거나 컴파일러 및 플랫폼을 사용하여 기능을 확인하려면 테스트 스위트를 실행하는 것이 좋습니다. 테스트 스위트의 빌드 규칙은 Scon을 사용하여 구현되므로 이를 설치해야 합니다(예: sudo apt install scons
또는 pip install scons
). 테스트를 실행하려면 다음 안내를 따르세요.
cd tests
scons
다양한 테스트 케이스의 진행 상황을 보여줍니다. 출력이 오류로 끝나지 않으면 테스트 사례가 성공한 것입니다.
참고: Mac OS X에서는 기본적으로 'clang'의 별칭을 'gcc'로 지정하지만 실제로는 gcc와 동일한 명령줄 옵션을 지원하지 않습니다. Mac OS X에서 테스트를 실행하려면 scons CC=clang CXX=clang++
사용하세요. 모든 플랫폼에서 다른 컴파일러로 테스트를 실행하는 데 동일한 방법을 사용할 수 있습니다.
임베디드 플랫폼의 경우 현재 STM32 디스커버리 보드 및 simavr AVR 시뮬레이터에서 테스트 실행이 지원됩니다. 이러한 테스트를 실행하려면 scons PLATFORM=STM32
및 scons PLATFORM=AVR
사용하십시오.
Nanopb C 코드 자체는 이식 가능하고 모든 플랫폼에서 쉽게 구축할 수 있도록 설계되었습니다. 종종 더 큰 장애물은 .proto
파일을 가져와서 .pb.c
정의를 출력하는 생성기를 실행하는 것입니다.
여러 시스템에 대한 빌드 규칙이 있습니다.
extra/nanopb.mk
, examples/simple
참조extra/FindNanopb.cmake
, examples/cmake
참조tests/site_scons
(생성기 전용)BUILD.bazel
conanfile.py
또한 플랫폼 인터페이스와의 통합도 가능합니다.