
Nanopb — это реализация Protocol Buffers с малым размером кода на ansi C. Она особенно подходит для использования в микроконтроллерах, но вписывается в любую систему с ограниченной памятью.
Чтобы использовать библиотеку nanopb, нужно сделать две вещи:
Самый простой способ начать работу — изучить проект в «examples/simple». Он содержит Makefile, который должен работать напрямую в большинстве Linux-систем. Однако для любой другой системы сборки обратитесь к пошаговым инструкциям в README.txt в этой папке.
Генератор nanopb реализован как плагин для собственного компилятора protoc от Google. Это преимущество заключается в том, что нет необходимости заново реализовывать базовый разбор .proto файлов. Однако это означает, что для запуска генератора вам понадобится библиотека protobuf от Google.
Если вы скачали бинарный пакет nanopb (для Windows, Linux или Mac OS X), бинарный файл 'protoc' включён в папку 'generator-bin'. В этом случае всё готово к работе. Просто выполните эту команду:
generator-bin/protoc --nanopb_out=. myprotocol.proto
Однако, если вы используете git checkout или обычный исходный дистрибутив, вам нужно предоставить собственную версию protoc и библиотеку protobuf от Google. В Linux необходимыми пакетами являются protobuf-compiler и python-protobuf. В Windows вы можете либо собрать библиотеку protobuf от Google из исходников, либо использовать один из её бинарных дистрибутивов. В любом случае, если вы используете отдельный protoc, вам нужно вручную указать путь к генератору nanopb:
protoc --plugin=protoc-gen-nanopb=nanopb/generator/protoc-gen-nanopb ...
Если вы хотите продолжить разработку ядра nanopb или проверить его функциональность с помощью вашего компилятора и платформы, вам нужно запустить набор тестов. Правила сборки для набора тестов реализованы с помощью Scons, поэтому он должен быть у вас установлен. Чтобы запустить тесты:
cd tests
scons
При этом будет показан ход выполнения различных тестовых сценариев. Если вывод не заканчивается ошибкой, тестовые сценарии были успешными.
Примечание: Mac OS X по умолчанию обозначает 'clang' как 'gcc', хотя на самом деле не поддерживает те же параметры командной строки, что и gcc. Чтобы запустить тесты в Mac OS X, используйте: "scons CC=clang CXX=clang". Тем же способом можно запускать тесты с другими компиляторами на любой платформе.