ประกอบด้วยเทมเพลต เอกสาร และตัวอย่างซอร์สโค้ดที่อ้างอิงบน https://embeddedartistry.com
สารบัญ
พื้นที่เก็บข้อมูลนี้ใช้โมดูลย่อย คุณสามารถโคลนพื้นที่เก็บข้อมูลแบบวนซ้ำเพื่อตั้งค่าโมดูลย่อยโดยอัตโนมัติ:
$ git clone https://github.com/embeddedartistry/embedded-resources.git --recursive
คุณยังสามารถเริ่มต้นโมดูลย่อยได้หลังจากการโคลน:
$ git submodule update --init --recursive
พื้นที่เก็บข้อมูลนี้ต้องใช้ git-lfs หากคุณยังไม่ได้ติดตั้ง โปรดไปที่ https://git-lfs.github.com
หากคุณโคลนพื้นที่เก็บข้อมูลนี้ก่อนที่จะติดตั้ง git-lfs โปรดเรียกใช้ git lfs pull
มิฉะนั้นโคลนจะดำเนินการ git lfs pull
โดยอัตโนมัติ
พื้นที่เก็บข้อมูลนี้สร้างด้วย meson ซึ่งต้องใช้ Python 3 และ Ninja
บน Ubuntu สามารถติดตั้งได้อย่างง่ายดายด้วยคำสั่งต่อไปนี้:
$ sudo apt-get install python3 python3-pip ninja-build
สำหรับ OSX คุณสามารถใช้ brew
:
$ brew install python3 ninja
วิธีที่ดีที่สุดในการรับ Meson คือผ่าน pip:
$ pip3 install meson
build/
docs
examples/
c/
cpp/
libc/
libcpp/
interview/
manufacturing/
คุณสามารถเรียกใช้ make
จากระดับบนสุดเพื่อสร้างตัวอย่างทั้งหมด เอาต์พุตจะถูกวางไว้ในโฟลเดอร์ชื่อ buildresults/
ที่ระดับบนสุด
คุณยังสามารถใช้ไวยากรณ์มีซอนที่เหมาะสมได้:
$ meson buildresults
$ cd buildresults
$ ninja
สามารถสร้างเป้าหมายทีละรายการได้โดยใช้อินเทอร์เฟซนินจาในไดเร็กทอรี buildresults/
$ cd buildresults
$ ninja interview/bad_c
หากต้องการล้างบิลด์ ให้รัน make clean
จากรูทโปรเจ็กต์หรือ ninja clean
ในไดเร็กทอรี buildresults/
ไบนารีจะถูกจัดเก็บไว้ภายใต้โฟลเดอร์ buildresults/
ในระดับลำดับชั้นเดียวกันกับในแผนผังต้นทาง ตัวอย่างเช่น แอปพลิเคชันสาธิตการสัมภาษณ์ bad_c
จะอยู่ใน buildresults/interview/
พื้นที่เก็บข้อมูลนี้รวมการทดสอบแล้ว การทดสอบสามารถดำเนินการได้ด้วย make test
ซึ่งจะสร้างโปรเจ็กต์ ดำเนินการการทดสอบ และจัดทำรายงานสรุปจากผู้ทดสอบของ Meson ในสถานการณ์สมมตินี้ ผลการทดสอบจะถูกจัดเก็บไว้ในไฟล์ XML ที่พบใน buildresults/test
หากต้องการดูเอาต์พุตที่มนุษย์สามารถอ่านได้ ให้สร้างโปรเจ็กต์ตามปกติ ( make
หรือ make test
) จากนั้นใช้คำสั่งนี้:
$ ninja -C buildresults/ embedded-resources-tests
ninja: Entering directory `buildresults/'
[0/1] Running external command embedde...es-tests (wrapped by meson to set env)
[==========] Running 1 test(s).
[ RUN ] test_case
[ OK ] test_case
[==========] 1 test(s) run.
[ PASSED ] 1 test(s).