"إذا أراد العامل أن يؤدي عمله بشكل جيد، فعليه أولاً أن يشحذ أدواته." - كونفوشيوس، "مختارات كونفوشيوس. لو لينجونج"
الصفحة الأمامية > برمجة > ## كيف يمكنني استخدام مترجمات متعددة لـ C++ في مشروع CMake واحد؟

## كيف يمكنني استخدام مترجمات متعددة لـ C++ في مشروع CMake واحد؟

تم النشر بتاريخ 2024-11-08
تصفح:881

## How Can I Use Multiple Compilers for C   in a Single CMake Project?

CMake: التنقل بين مترجمين متعددين للغة واحدة

يلتزم CMake بمبدأ تعيين CMAKE_CXX_COMPILER واحد لجميع ملفات مصدر C داخل ملف ملف CMakeLists.txt. يطرح هذا الأسلوب تحديات عند محاولة الجمع بين المضيف والتجميع المتبادل في ملف CMakeLists.txt واحد.

المعضلة: مترجمون متعددون لنفس اللغة

حسب السؤال الأصلي، جوهر المشكلة يكمن في إيجاد حل لاستخدام مترجمين متعددين لنفس اللغة، وتحديدًا لغة C .

الحل الوسط: خيارات محدودة

لسوء الحظ ، لا يلبي تصميم CMake هذا المطلب بسهولة. يحتفظ CMake بمجموعة واحدة من خصائص برنامج التحويل البرمجي التي تنطبق على كافة الأهداف داخل ملف CMakeLists.txt. وبالتالي، لتوظيف مترجمين متعددين، من الضروري تنفيذ CMake مرتين.

البدائل: أوامر مخصصة أو ملفات منفصلة

يتضمن الحل البديل استخدام أوامر مخصصة، بشكل أساسي إنشاء نصوص شل مجيدة. ومع ذلك، فإن هذا النهج ينحرف عن الهدف المنشود.

يستلزم الحل الأنظف فصل عمليات التجميع إلى ملفات CMakeLists.txt مميزة. على الرغم من أنه يمنع الارتباط بين البنى المختلفة، إلا أنه يلغي الحاجة إلى تعليمات برمجية زائدة عن الحاجة. للحفاظ على الاتساق، يمكن استخراج الأقسام المشتركة من البرامج النصية CMake في ملفات منفصلة وتضمينها عبر وظيفة include().

العيوب: الملاءمة للتعقيد الأساسي عيب هذا النهج هو فقدان تجميع الأمر الفردي. للتخفيف من ذلك، يمكن إنشاء برنامج نصي مجمّع بلغة برمجة نصية مفضلة لاستدعاء أوامر CMake الضرورية.

أحدث البرنامج التعليمي أكثر>

تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.

Copyright© 2022 湘ICP备2022001581号-3