سؤال

أنا أعمل على مشروع C ++ مفتوح، للحصول على التعليمات البرمجية التي تتجمع على نظام Linux و Windows. أستخدم CMAKE لبناء التعليمات البرمجية على Linux. لسهولة إعداد التنمية وأسباب سياسية، يجب أن ألتصق بملفات / محرر مشروع / محرر Visual Studio على Windows (لا أستطيع التبديل إلى الرمز :: كتل, ، علي سبيل المثال). أرى تعليمات لإنشاء ملفات Visual Studio باستخدام CMAKE، كما هنا.

هل استخدمت cmake لتوليد ملفات Visual Studio من قبل؟ كيف كانت تجربتك؟ افترض أنني أريد إضافة ملف جديد إلى مشروعي. ما هو سير العمل لهذا؟

هل كانت مفيدة؟

المحلول

cmake هو في الواقع جيدة جدا لهذا. كان الجزء الرئيسي هو كل شخص على جانب Windows يجب أن يتذكر تشغيل CMAKE قبل التحميل في الحل، والجميع على جانب MAC يتعين عليهم أن يتذكروا تشغيله قبل تقديمه.

الجزء الأصعب هو كمطور Windows، مما يتأكد من تغييراتك الهيكلية في ملف cmakelist.txt وليس في الحل أو ملفات المشروع حيث أن هذه التغييرات قد تضيعها وحتى إن لم يتم فقدها لن يتم نقلها إلى جانب ماك احتاجها أيضا، وسوف يحتاج شباب Mac إلى تذكر عدم تعديل ملف تقديم لنفس الأسباب.

يتطلب فقط التفكير الصغير والصبر، ولكن سيكون هناك أخطاء في البداية. ولكن إذا كنت تستخدم التكامل المستمر على كلا الجانبين، سيتم هز هذه المبكرين، وسوف يحصل الناس في النهاية على العادة.

نصائح أخرى

لست متأكدا مما إذا كانت مرتبطة مباشرة بالسؤال، لكنني كنت أبحث عن إجابة لكيفية توليد * .sln من مشاريع Cmake التي اكتشفت أن المرء يمكنه استخدام شيء مثل هذا:

cmake -G "Visual Studio 10"

المثال يولد حاجة إلى ملفات VS 2010 من ملف الإدخال cmakelists.txt

لقد نقلنا سلسلة بناء القسم الخاصة بنا إلى CMAKE، وكان لدينا عدد قليل من الطرق الداخلية منذ الإدارات الأخرى حيث تستخدم ملفات المشروع لدينا، حيث اعتادوا على استيرادها فقط في حلولهم. لدينا أيضا بعض الشكاوى حول Cmake غير متكامل بالكامل في مدير مشروع Visual Studio / الحلول، لذلك يجب إضافة الملفات يدويا إلى CMAKelists.txt؛ كان هذا استراحة رئيسية في سير العمل اعتادت عليه الناس.

ولكن بشكل عام، كان انتقال سلس تماما. نحن سعداء جدا لأننا لا تضطر إلى التعامل مع ملفات المشروع بعد الآن.

سير العمل الملموس لإضافة ملف جديد إلى مشروع بسيط حقا:

  1. إنشاء الملف، تأكد من أنه في المكان الصحيح.
  2. أضف الملف إلى cmakelists.txt.
  3. يبني.

cmake 2.6 إعادة تشغيل نفسها تلقائيا في حالة تغيير أي ملفات cmakelists.txt (و (semi-) تلقائيا الحل / المشروعات).

تذكر أنه إذا كنت تقوم بعروض خارج المصدر، فأنت بحاجة إلى أن تكون حذرا على عدم إنشاء ملف المصدر في دليل الإنشاء (نظرا لأن Visual Studio يعرف فقط عن دليل الإنشاء).

كما يقول أليكس، فإنه يعمل بشكل جيد للغاية. الجزء الصعب الوحيد هو أن نتذكر إجراء أي تغييرات في ملفات cmake، بدلا من داخل Visual Studio. لذلك على جميع المنصات، فإن سير العمل يشبه إذا كنت تستخدم Makefiles القديم العادي.

لكن من السهل إلى حد ما العمل مع، ولدي أي مشاكل مع CMAKE التي توليد ملفات غير صالحة أو أي شيء من هذا القبيل، لذلك لن تقلق كثيرا.

cmake يمكن أن تولد حقا استوديو مرئي لطيف .projs/.slns, ، ولكن هناك دائما مشكلة في الحاجة إلى تعديل .cmake الملفات بدلا من ذلك .proj/.sln. وبعد كما هو الحال الآن، نحن نتعامل معها على النحو التالي:

  1. جميع الملفات المصدر تذهب إلى /src والملفات المرئية في Visual Studio هي مجرد "روابط" معرفتها .filter.
  2. يضيف مبرمج / حذف الملفات التي تذكرها العمل على المحدد /src الدليل، وليس المشروع الافتراضي واحد.
  3. عندما يتم ذلك، يدير برنامج نصي "ينعش" المعني .cmake الملفات.
  4. يتحقق إذا كان يمكن بناء الكود في البيئة التي تم إنشاؤها.
  5. انه يرتكز القانون.

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

شيء أكثر أهمية لمعرفته هو عدم الدعم (بقدر ما أعلم) ل "تكوينات الحلول" في cmake. كما تقف، عليك أن تولد اثنين الدلائل مع المشاريع / الحلول - واحدة لكل نوع بناء (تصحيح، والإفراج، وما إلى ذلك). لا يوجد دعم مباشر للميزات الأكثر تطورا - بمعنى آخر: لن يمنحك التبديل بين التكوينات ما قد تتوقعه.

cmake تنتج مشاريع واستوديو البصرية الحلول بسلاسة. يمكنك حتى إنتاج مشاريع / حلول لإصدارات Visual Studio مختلفة دون إجراء أي تغييرات على ملفات Cmake.

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

يشرح الارتباط التالي سلوك Cmake و Visual Studio بشكل جيد للغاية.

cmake و Visual Studio

لقد بدأت مشروعي الخاص، يسمى SyncProj. الوثائق / تحميل الروابط من هنا:

https://docs.google.com/document/d/1c1yrbfuvptbxajbtrc62axru2om6dy5rclynbj5zhu/edit# https:/sourceforge.net/projects/syncproj/

إذا كنت تخطط لاستخدام Visual Studio للتطوير، ويتم دعم C ++ فقط.

الميزة الرئيسية مقارنة مع أنظمة العمل الأخرى هي أنه يمكنك تصحيح البرنامج النصي الخاص بك فعليا، حيث كان C #.

إذا لم تكن معتادا على SyncProj، فيمكنك فقط تحويل الحل / المشروع إلى البرنامج النصي .cs، واستمرار في مزيد من التطوير من هذه النقطة.

في cmake، ستحتاج إلى كتابة كل شيء من نقطة الصفر.

الكثير من الإجابات العظيمة هنا ولكن قد يتم حلها بهذا دعم Cmake في Visual Studio (5 أكتوبر 2016)

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top