Google is committed to advancing racial equity for Black communities. See how.
หน้านี้ได้รับการแปลโดย Cloud Translation API
Switch to English

สร้าง OpenWeave

toolchain หลักที่รองรับสำหรับการสร้าง OpenWeave คือ GNU Autotools

ความต้องการของระบบ

แพลตฟอร์มระบบปฏิบัติการหลักทั้งหมดรองรับการสร้างและการรวบรวมข้าม OpenWeave ห่วงโซ่เครื่องมือในรายการได้รับการทดสอบอย่างเป็นทางการโดย Nest

ลินุกซ์

ข้อกำหนด: รองรับ Ubuntu 14.04 (Trusty) อย่างเป็นทางการ แต่ระบบที่ใช้ Linux ที่คล้ายกันควรใช้งานได้
การผูก C / C ++, Java, Python
โซ่เครื่องมือ gcc 4.6.3
เป้าหมาย i386- ไม่รู้จัก linux-gnu
x86_64- ไม่ทราบ -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-apple-darwin-ios
C / C ++, การผูก Python
โซ่เครื่องมือ LLVM / เสียงดัง 3.5 (6.0)
เป้าหมาย i386-apple-darwin-macosx
x86_64-apple-darwin-macosx

Windows

ข้อกำหนด: รองรับบรรทัดคำสั่ง Cygwin สำหรับ Linux
การเชื่อม C / C ++
โซ่เครื่องมือ gcc 4.8.3
เป้าหมาย i686-pc-cygwin

ฝัง

การเชื่อม C / C ++
โซ่เครื่องมือ gcc 4.4.1
LLVM / เสียงดัง 3.1
LLVM / เสียงดัง 3.3
เป้าหมาย แขน * -unknown-linux *
แขน * -unknown-freertos-lwip

ข้อกำหนดเบื้องต้น

นอกเหนือจาก toolchain ที่รองรับแล้วเราขอแนะนำให้ติดตั้งแพ็คเกจและเครื่องมือต่อไปนี้ก่อนที่จะสร้าง OpenWeave

แพ็คเกจ

ลินุกซ์:

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 Autotools

OpenWeave ขึ้นอยู่กับ GNU Autotools สำหรับระบบสร้าง ต้องมีเวอร์ชันของ GNU Autotools เพื่อสร้าง OpenWeave ให้สำเร็จ วิธีใช้ autotools เวอร์ชันที่ระบบให้มาบน Linux:

sudo apt-get install libtool autoconf automake

สำหรับระบบที่ GNU Autotools ไม่พร้อมใช้งานหรือติดตั้งได้ (เช่น Mac OS) หรือบนระบบที่เวอร์ชันที่ระบบให้มาไม่ได้มีการสร้างแบบสำเร็จรูปที่มั่นคง Nest Labs ได้สร้างบิลด์แบบครบวงจรที่กำหนดเอง กรอบระบบขึ้นอยู่กับ GNU Autotools ระบบจะตรึงชุดของโปรแกรมที่ใช้ในการสร้างรุ่นไปยังเวอร์ชันที่ใช้งานได้ดี การตรึงเครื่องมือไว้ที่เวอร์ชันใดเวอร์ชันหนึ่งยังช่วยให้มั่นใจได้ว่าเอาต์พุตของเครื่องมืออัตโนมัติจะค่อนข้างต่ำซึ่งจะนำไปสู่ประสบการณ์ของนักพัฒนาและการสนับสนุนที่คาดเดาได้ แนะนำให้ใช้รุ่น Nest Labs ของ GNU Autotools กับ 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 ในโทโพโลยีจำลองให้ติดตั้ง Happy บนเครื่อง Linux ของคุณ ดู การตั้งค่าความสุข สำหรับข้อมูลเพิ่มเติม

แอปพลิเคชันแบบสแตนด์อโลน

ใช้แอปพลิเคชัน OpenWeave Standalone เริ่มต้นสำหรับโฮสต์การพัฒนาเดสก์ท็อปหรือเซิร์ฟเวอร์

  1. โคลนที่เก็บ OpenWeave:
    git clone https://github.com/openweave/openweave-core.git
  2. สร้างแอปพลิเคชัน OpenWeave แบบสแตนด์อโลน:
    cd openweave-core
    make -f Makefile-Standalone

ใช้ help ธง Makefile-Standalone ที่จะเรียนรู้สิ่งที่สร้างสวิทช์ที่มีอยู่สำหรับการสร้างการปรับแต่ง

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.ac Makefile.am หรือ Makefile.am ไม่จำเป็นต้องทำซ้ำเมื่อเพียงแค่เปลี่ยนการกำหนดค่าการสร้างหรือเป้าหมาย

สคริปต์

ใช้แฟ --help กับสคริปต์คอนฟิกูเรชันที่รวมอยู่เพื่อเรียนรู้เพิ่มเติมเกี่ยวกับอ็อพชันที่กำหนดค่าได้

./configure --help

ตัวอย่างเช่นในการกำหนดค่า OpenWeave โดยไม่รองรับ BlueZ:

./configure --without-bluez

ส่วนหัว

Makefiles รวมใช้ไฟล์ส่วนหัวสองไฟล์ที่กำหนดค่าคงที่ในเวลาคอมไพล์:

อาจมีการระบุส่วนหัวการกำหนดค่าเฉพาะโครงการ วางไฟล์เหล่านี้ในไดเร็กทอรีโปรเจ็กต์ของคุณอย่าวางไว้ในที่เก็บ OpenWeave ใช้ตัวเลือกการกำหนดค่าที่เหมาะสมเพื่อระบุตำแหน่งของไฟล์แต่ละไฟล์ระหว่างการกำหนดค่า:

ไฟล์ส่วนหัว ตัวเลือกการกำหนดค่า
InetProjectConfig.h --with-weave-inet-project-includes= <directory>
WeaveProjectConfig.h --with-weave-project-includes= <directory>

ตัวอย่างเช่นในการกำหนดค่า OpenWeave ให้ใช้ไฟล์ WeaveProjectConfig.h เฉพาะ WeaveProjectConfig.h อยู่ใน ~/my-project/headers :

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