ประกอบด้วยเทมเพลต เอกสาร และตัวอย่างซอร์สโค้ดที่อ้างอิงบน 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/docsexamples/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).