C言語しか動作しない低性能ハードウェアとEthernet通信するという案件がある。IoT機器に対するEthernet通信(というかMQTT)では伝文のシリアライズフォーマットにJSONの使用を考えていた。対低性能ハードウェア視線で考えると、C言語でJSONのパースはちょっときついかも・・・そこで、C言語でも実装できるようなシリアライズフォーマットで何か良いのないかなぁと探していたら、protobuf-cなるものを見つけた。BuffersのC言語版らしい。Buffersは候補に挙がっていたので、「こんなのもあるのかー」と一応存在自体は把握していた。対象がC++やPythonであると思っていたので、「それならお手軽JSONでいいやー」とスルーしていた。ここにきて、C言語対応のシリアライズフォーマットとして筆頭候補に挙がってきたので、ちょっとどんなものなのか遊んでみる。64bitでいろいろやってみる。installed.と書いてあるので、それらを入手する必要がある。installedと言われているのでそららもいるかもしれないが、とりあえず今は様子見しとく。Qiitaの記事にautoconfの説明で参考になるものがあった。)タチが悪いことに、環境がWindowsなので、色々遠回りに環境構築する必要がある。備忘録を兼ねて、それらを残しておく。protobuf-cのクローンとりあえず環境作成のためには、protobuf-cを自前ビルドすることが前提のようなので、このソースコードをgithubからクローンする。bashがあったのでそれで代用するという手抜きをする。Windowsをインストールする過程で入手できる。directoryとかいって怒られる。Files\Git\usr\bin\sh.exeにアクセスしようとする過程で、半角スペースが含まれるのでアクセス不可になってたっぽい。bashを使用することでmakeを解決できた。protobufの入手(Windows)githubのreleasesページから~win32.zipをダウンロードする。binフォルダ内にprotoc.exeがあるので、それを取得。pkg-configの入手(Windows)Readme.md#buildingに書いてある通り、./configを使用できるようにする必要がある。そのため、pkg-configが必要。--with-internal-glibと実行する。makeの入手(Windows)素のWindows環境では、makeコマンドが効かないので、それを用意する必要がある。gnuwin32からインストーラをダウンロードする。bashを使用する場合、前述したmake実行できないトラップがあるので注意。こりゃWindowsは無理かなーってことで今諦めモードです。なったら意地でもどうなるかやってみたいので、Linux環境でやるしかないね。コメントをキャンセルメールアドレスが公開されることはありません。*サイト次回のコメントで使用するためブラウザーに自分の名前、メールアドレス、サイトを保存する。備考タイトルとURLをコピーしました。