Google 致力于为黑人社区推动种族平等。查看具体举措
此页面由 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存储库:
    git clone https://github.com/openweave/openweave-core.git
  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之前,请使用自动工具来引导相关的构建文件:

./bootstrap

在树检出之后,需要执行一次此步骤,然后对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