Nanopb 是 ansi C 中的小型程式碼大小協定緩衝區實作。
要使用nanopb庫,您需要做兩件事:
protoc
編譯 nanopb 的 .proto 檔案。最簡單的入門方法是研究「examples/simple」中的專案。它包含一個 Makefile,應該可以直接在大多數 Linux 系統下運作。但是,對於任何其他類型的建置系統,請參閱該資料夾中 README.txt 中的手動步驟。
Protocol Buffers 訊息在.proto
檔案中定義,該檔案遵循與所有 Protocol Buffers 函式庫相容的標準格式。要將其與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核心,或使用您的編譯器和平台驗證其功能,您將需要執行測試套件。測試套件的建置規則是使用 Scons 實現的,因此您需要安裝它(例如: 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 discovery board 和 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
還整合到平台介面: