CMake Tutorial

From binaryoption
Revision as of 21:04, 22 April 2025 by Admin (talk | contribs) (@pipegas_WP)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search
Баннер1
  1. CMake: دليل شامل للمبتدئين

CMake هو نظام بناء عبر الأنظمة الأساسية مفتوح المصدر. يُستخدم للتحكم في عملية بناء البرامج، وتوليد ملفات البناء الأصلية للمترجمات المختلفة، وأنظمة التشغيل المختلفة. يتيح لك CMake كتابة ملف واحد يصف عملية البناء، ثم استخدامه لإنشاء مشاريع على أنظمة تشغيل متعددة مثل Windows و Linux و macOS. هذا الدليل موجه للمبتدئين، وسيشرح المفاهيم الأساسية وكيفية البدء في استخدام CMake.

ما هو CMake ولماذا نستخدمه؟

في عالم البرمجة، غالبًا ما تحتاج إلى تجميع (compile) كود المصدر الخاص بك إلى برنامج قابل للتنفيذ. يمكن أن تكون عملية التجميع معقدة، خاصةً إذا كان مشروعك يعتمد على مكتبات خارجية أو إذا كنت تريد دعمه على أنظمة تشغيل متعددة.

CMake يحل هذه المشكلة من خلال تجريد عملية البناء. بدلاً من كتابة ملفات بناء خاصة بكل نظام تشغيل (مثل Makefiles على Linux أو Visual Studio projects على Windows)، تكتب ملف CMake واحد يصف مشروعك. ثم يستخدم CMake هذا الملف لتوليد ملفات البناء الأصلية للنظام الذي تعمل عليه.

فوائد استخدام CMake:

  • قابلية النقل: بناء مشاريعك على أنظمة تشغيل مختلفة بسهولة.
  • البساطة: ملفات CMake غالبًا ما تكون أسهل في القراءة والكتابة من ملفات البناء الأصلية.
  • الاعتمادية: CMake يتعامل مع الاعتماديات بين الملفات والمكتبات.
  • التوسع: يمكن توسيع CMake بسهولة لدعم أدوات ومترجمات جديدة.
  • الإدارة: يساعد في إدارة المشاريع الكبيرة والمعقدة.

المفاهيم الأساسية في CMake

  • ملف CMakeLists.txt: هذا هو الملف الرئيسي الذي يصف مشروعك. يحتوي على تعليمات CMake حول كيفية تجميع مشروعك.
  • الأوامر: CMake يستخدم مجموعة من الأوامر لتحديد عملية البناء. بعض الأوامر الشائعة تشمل `project()‎`، `add_executable()‎`، `add_library()‎`، `include_directories()‎`، و `target_link_libraries()‎`.
  • المتغيرات: تستخدم لتخزين القيم التي يمكن استخدامها في ملف CMakeLists.txt.
  • الخصائص: تستخدم لضبط خصائص الكائنات المختلفة في مشروعك، مثل المترجم المستخدم أو علامات التجميع.
  • الأهداف: تمثل الكائنات التي سيتم بناؤها، مثل البرامج القابلة للتنفيذ والمكتبات.

مثال بسيط: بناء برنامج "Hello, World!"

لنبدأ بإنشاء برنامج "Hello, World!" بسيط باستخدام CMake.

1. إنشاء ملف المصدر: أنشئ ملفًا باسم `main.cpp` يحتوي على الكود التالي:

```cpp

  1. include <iostream>

int main() {

 std::cout << "Hello, World!" << std::endl;
 return 0;

} ```

2. إنشاء ملف CMakeLists.txt: أنشئ ملفًا باسم `CMakeLists.txt` في نفس الدليل مع الكود التالي:

```cmake cmake_minimum_required(VERSION 3.10) # تحديد الحد الأدنى لنسخة CMake المطلوبة

project(HelloWorld) # تحديد اسم المشروع

add_executable(HelloWorld main.cpp) # إنشاء برنامج قابل للتنفيذ باسم HelloWorld من ملف main.cpp ```

3. بناء المشروع: افتح سطر الأوامر أو الطرفية وانتقل إلى الدليل الذي يحتوي على `main.cpp` و `CMakeLists.txt`. ثم قم بتشغيل الأوامر التالية:

```bash mkdir build cd build cmake .. make ```

هذه الأوامر تقوم بما يلي:

  • `mkdir build`: ينشئ دليلًا جديدًا باسم `build` لتخزين ملفات البناء.
  • `cd build`: ينتقل إلى دليل `build`.
  • `cmake ..`: يشغل CMake لتوليد ملفات البناء. النقطتين (`..`) تشيران إلى الدليل الأصل (حيث يوجد `CMakeLists.txt`).
  • `make`: يقوم بتجميع البرنامج القابل للتنفيذ باستخدام `make`.

4. تشغيل البرنامج: بعد اكتمال عملية البناء، يمكنك تشغيل البرنامج القابل للتنفيذ:

```bash ./HelloWorld ```

سيؤدي ذلك إلى طباعة "Hello, World!" على الشاشة.

أوامر CMake الشائعة

| الأمر | الوصف | |--------------|------------------------------------------------------------------------------| | `project()` | يحدد اسم المشروع والنسخة. | | `add_executable()` | ينشئ برنامجًا قابلًا للتنفيذ. | | `add_library()` | ينشئ مكتبة. | | `include_directories()` | يحدد مسارات البحث عن ملفات الرأس (header files). | | `target_link_libraries()` | يحدد المكتبات التي يجب ربطها بالهدف (البرنامج أو المكتبة). | | `set()` | يعرّف متغيرًا. | | `find_package()` | يبحث عن حزم (packages) خارجية. | | `install()` | يحدد كيفية تثبيت الملفات. | | `configure_file()` | يولد ملفًا من قالب (template). |

التعامل مع المكتبات الخارجية

غالبًا ما تعتمد المشاريع على مكتبات خارجية. يوفر CMake طرقًا سهلة للتعامل مع هذه المكتبات.

  • `find_package()`: هذا الأمر يبحث عن مكتبة معينة على نظامك. إذا تم العثور على المكتبة، فسيتم تعيين متغيرات CMake التي تحتوي على معلومات حول المكتبة، مثل مسارات الرأس (header files) ومسارات المكتبات.
  • `target_link_libraries()`: هذا الأمر يربط المكتبات الخارجية بالهدف الخاص بك.

مثال:

```cmake find_package(Boost REQUIRED) # البحث عن مكتبة Boost

if(Boost_FOUND)

 include_directories(${Boost_INCLUDE_DIRS}) # تضمين مسارات الرأس الخاصة بـ Boost
 target_link_libraries(HelloWorld ${Boost_LIBRARIES}) # ربط مكتبات Boost بـ HelloWorld

endif() ```

أدوات CMake المفيدة

  • CMake GUI: واجهة مستخدم رسومية لتكوين مشاريع CMake.
  • ccmake: أداة سطر أوامر لتكوين مشاريع CMake.
  • CTest: أداة لتشغيل اختبارات الوحدة (unit tests).

استراتيجيات تداول الخيارات الثنائية ذات الصلة

التحليل الفني وتحليل حجم التداول

موارد إضافية

الخلاصة

CMake هو أداة قوية لتبسيط عملية بناء البرامج. من خلال فهم المفاهيم الأساسية والأوامر الشائعة، يمكنك استخدام CMake لإنشاء مشاريع قابلة للنقل وسهلة الإدارة. هذا الدليل يقدم مقدمة للمبتدئين، ولكن هناك الكثير لاستكشافه. استمر في التعلم والتجربة لكي تتقن CMake وتستفيد من جميع ميزاته.

ابدأ التداول الآن

سجل في IQ Option (الحد الأدنى للإيداع $10) افتح حساباً في Pocket Option (الحد الأدنى للإيداع $5)

انضم إلى مجتمعنا

اشترك في قناة Telegram الخاصة بنا @strategybin للحصول على: ✓ إشارات تداول يومية ✓ تحليلات استراتيجية حصرية ✓ تنبيهات باتجاهات السوق ✓ مواد تعليمية للمبتدئين

Баннер