はじめに
nanopbのProtocol Buffersをコンパイルする手順をまとめました。
環境
- MacBook Pro (13-inch, 2020)
- macOS Catalina 10.15.7
手順
1. protoファイルを用意
まずはprotoファイルを準備します。内容はテキトーです。
syntax = "proto3";
package com.test;
message Person {
string name = 1;
int32 id = 2;
string email = 3;
}
2. nanopb generatorを用意
こちらからダウンロードします
https://jpa.kapsi.fi/nanopb/download/
ダウンロードした圧縮ファイルを展開すると generator-bin
というディレクトリがあります。
ここに1.で用意したprotoファイルを配置します。
3. ファイルを生成する
nanopb_generatorコマンドでprotobufのファイルを生成します。
$ generator-bin/nanopb_generator test.proto
Writing to test.pb.h and test.pb.c
4. できあがり
- test.pb.h
/* Automatically generated nanopb header */
/* Generated by nanopb-0.4.4 */
#ifndef PB_COM_TEST_TEST_PB_H_INCLUDED
#define PB_COM_TEST_TEST_PB_H_INCLUDED
#include <pb.h>
#if PB_PROTO_HEADER_VERSION != 40
#error Regenerate this file with the current version of nanopb generator.
#endif
/* Struct definitions */
typedef struct _com_test_Person {
pb_callback_t name;
int32_t id;
pb_callback_t email;
} com_test_Person;
- test.pb.c
/* Automatically generated nanopb constant definitions */
/* Generated by nanopb-0.4.4 */
#include "test.pb.h"
#if PB_PROTO_HEADER_VERSION != 40
#error Regenerate this file with the current version of nanopb generator.
#endif
PB_BIND(com_test_Person, com_test_Person, AUTO)