يحتوي على القوالب والمستندات وأمثلة التعليمات البرمجية المصدر المشار إليها على 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 .
تم إنشاء هذا المستودع باستخدام الميزون، والذي يتطلب Python 3 وNinja.
يمكن تثبيت هذه العناصر بسهولة على Ubuntu باستخدام الأمر التالي:
$ sudo apt-get install python3 python3-pip ninja-build
بالنسبة لـ OSX، يمكنك استخدام brew :
$ brew install python3 ninja
أفضل طريقة للحصول على الميزون هي من خلال النقطة:
$ 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).