1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

nanopbでProtocol Buffersを出力する

Posted at

はじめに

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/
スクリーンショット 2021-01-19 18.36.24.png

ダウンロードした圧縮ファイルを展開すると generator-bin というディレクトリがあります。
スクリーンショット 2021-01-19 18.23.07.png

ここに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)

参考

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?