Google is committed to advancing racial equity for Black communities. See how.
本頁面由 Cloud Translation API 翻譯而成。
Switch to English

建立OpenWeave

用於構建OpenWeave的主要支持工具鍊是GNU Autotools。

系統要求

所有主要的OS平台都支持OpenWeave的構建和交叉編譯。列出的工具鏈已經過Nest的正式測試。

的Linux

要求:正式支持Ubuntu 14.04(Trusty),但是任何類似的基於Linux的系統都可以使用。
C / C ++,Java,Python綁定
工具鏈 gcc 4.6.3
目標 i386-unknown-linux-gnu
x86_64-unknown-linux-gnu
C / C ++,Java綁定
工具鏈 gcc 4.6
目標手臂未知的Linux的Android
armv7-未知-linux-android
i386-未知-linux-android

Mac OS X

要求: XQuartz通過符號鏈接將一個目錄子樹克隆到另一目錄樹。
C / C ++,可可綁定
目標 armv7-apple-darwin-ios
armv7s-apple-darwin-ios
i386-蘋果-達爾文-ios
C / C ++,Python綁定
工具鏈 LLVM /鐺3.5(6.0)
目標 i386蘋果達爾文macosx
x86_64-apple-darwin-macosx

視窗

要求: Cygwin for Linux命令行支持。
C / C ++綁定
工具鏈 gcc 4.8.3
目標 i686-pc-cygwin

嵌入式的

C / C ++綁定
工具鏈 gcc 4.4.1
LLVM /鐺3.1
LLVM /鐺3.3
目標手臂*-未知Linux *
手臂*-未知-freertos-lwip

先決條件

除了受支持的工具鏈之外,我們建議在構建OpenWeave之前安裝以下軟件包和工具。

配套

Linux:

sudo apt-get install python-pip python-setuptools bridge-utils /
               libglib2.0-dev libdbus-1-dev libudev-dev /
               libical-dev libreadline-dev

Linux和Mac OS X:

pip install --user google-cloud googleapis-common-protos grpc protobuf pycryptodomex
sudo cpan -i Text::Template

GNU自動工具

OpenWeave的構建系統依賴於GNU Autotools。必須有一個GNU Autotools版本才能成功構建OpenWeave。要在Linux上使用系統提供的自動工具版本:

sudo apt-get install libtool autoconf automake

對於無法立即使用或安裝GNU Autotools的系統(例如Mac OS),或者在系統提供的版本無法提供可靠的現成版本的系統上,Nest Labs已創建了定制的,交鑰匙的版本系統框架,基於GNU Autotools。系統將生成生成中使用的程序集固定到一個已知的良好版本。將工具固定到特定版本還可以確保自動工具輸出的流失率相對較低,從而帶來可預測的開發人員和支持經驗。建議將GNU Autotools的Nest Labs構建與OpenWeave一起使用。

要構建Nest Labs GNU Autotools,請執行以下操作:

git clone https://github.com/openweave/openweave-core.git
cd openweave-core
make -C third_party/nlbuild-autotools/repo/ tools

快樂

要運行OpenWeave中包含的測試腳本,或在模擬拓撲中使用Weave,請在Linux機器上安裝Happy。有關更多信息,請參見快樂設置

獨立應用

將默認的OpenWeave Standalone應用程序用於台式機或服務器開發主機。

  1. 克隆OpenWeave存儲庫:
    git clone https://github.com/openweave/openweave-core.git
  2. 生成OpenWeave獨立應用程序:
    cd openweave-core
    make -f Makefile-Standalone

使用帶有Makefile-Standalonehelp標誌來了解哪些構建開關可用於構建定制。

make -f Makefile-Standalone help

例如,要啟用Weave調試代碼和日誌記錄:

make -f Makefile-Standalone DEBUG=1

項目鏈接

  1. 克隆OpenWeave存儲庫:9345523c4e
  2. 配置GNU Autotools的構建環境:
    cd openweave-core
    ./bootstrap
    ./configure
  3. 建立OpenWeave:
    make all
  4. 將輸出分段到單獨的位置以進行項目鏈接:
    mkdir <openweave-output>
    make DESTDIR=<openweave-output> install

暫存後,使用<openweave-output>下的目錄進行項目鏈接:

  • /usr/local/include公共頭文件
  • /usr/local/lib —庫

Android和iOS

要構建用於Android和iOS項目鏈接的庫,請使用特定於平台的Makefiles

make -f Makefile-Android
make -f Makefile-iOS

help標誌與Makefile- <platform>以了解哪些構建開關可用於構建定制。例如:

make -f Makefile-Android help
make -f Makefile-iOS help

組態

在使用各種腳本和頭文件配置OpenWeave之前,請使用自動工具來引導相關的構建文件:

60

在樹檢出之後,需要執行一次此步驟,然後對configure.acMakefile.am進行任何更改。僅更改構建配置或目標時,無需重複該操作。

劇本

--help標誌與隨附的配置腳本一起使用,以了解有關可配置選項的更多信息。

./configure --help

例如,要配置不支持BlueZ的OpenWeave:

./configure --without-bluez

標頭

包含的Makefiles使用兩個頭文件在編譯時定義常量:

還可以提供項目特定的配置頭。將這些文件放置在您的項目目錄中-不要將它們放置在OpenWeave存儲庫中。使用適當的配置選項在配置過程中指定每個文件的位置:

頭文件配置選項
InetProjectConfig.h --with-weave-inet-project-includes= <directory>
WeaveProjectConfig.h --with-weave-project-includes= <directory>

例如,將OpenWeave配置為使用~/my-project/headers特定於項目的WeaveProjectConfig.h文件:

./configure --with-weave-project-includes=~/my-project/headers