سؤال

أقوم بتشغيل Mac OS X 10.5.8 وأريد تجميع CentOS 5.3 الهدف مع GCC 4.1.2. كيف يمكنني:

  1. تجميع GCC 4.1.2 أدوات أدوات وأدوات ذات صلة؟
  2. هل تستخدم هذه الأداة لتجميع Centos 5.3 Target؟

أي مساعدة يحظى بتقدير كبير!

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

المحلول

الحل الأبسط الخاص بك هو تشغيل CentOS 5.3 فقط في VM (على سبيل المثال الشمس VirtualBox). هذا يتطلب الحد الأدنى من الإعداد ، وله نفقات عامة معقولة (على افتراض أنتل ماك) ، وستتمكن من ذلك في الواقع اختبار و تصحيح ما تبنيه.

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

نصائح أخرى

استخدم Cocotron للمشاركة مباشرة من Xcode. هناك دليل جيد للبدء هنا: http://blog.tlensing.org/tag/cocotron/

في الوقت الحاضر ، ربما يمكنك القيام بذلك Docker لـ Mac, ، لم أختبر ذلك لأنه ليس لدي جهاز Mac. يقوم Docker بإنشاء Linux VM بشكل أساسي ويوفر بعض الوظائف اللطيفة.

تثبيت Docker وإعداد صورة البناء الخاصة بك.

  • تثبيت Docker
  • بدء حاوية جديدة مع docker run -ti centos5.3 /bin/bash (ابحث عن المسؤول Docker Hub للهدف المطلوب)
  • قم بتثبيت إصدار GCC الخاص بك (شيء مثل sudo yum group install "Development Tools")
  • الخروج من الحاوية الخاصة بك
  • يركض docker ps -a للحصول على معرف الحاوية الخاص بك
  • النسخ الاحتياطي للحاوية الخاصة بك كصورة بناء قاعدة docker commit [id] centos:build

جعل البناء

الآن يمكنك استخدام بيئة البناء التي تم إنشاؤها الخاصة ببناء CentOS.

  • لبدء بيئة البناء الخاصة بك أثناء تركيب دليل العمل بداخله ، يمكنك استخدام شيء مثل docker run -it --mount type=bind,source=$(pwd),target=/mnt centos:build /bin/sh -c "cd /mnt && bash"
  • ثم اركض gcc ... أو ./configure أو make أو ninja أو أي شيء يمكنك القيام به
  • يمكنك أيضًا إجراء اختبارات آلية هنا إذا كتبت بعضًا

Docker vs VM

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

إذا كان تطبيقك رسوميًا وقمت باختباره باستخدام التفاعل مع واجهة المستخدم الرسومية الخاصة به ، فأعتقد أن VM لا يزال خيارًا أفضل (انظر حل توظيف روسيا).

يمكنك استخدام CrosStool-NG ، أو إذا كنت لا ترغب في قضاء الكثير من الوقت لتكوينه ، يمكنك تنزيل مُجسّب متقاطع تم تكوينه مسبقًا ، مثل Linaro. ها هي يرشد لتثبيته في Mac OS X.

لقد ناضلت من أجل الحصول عليها crosstool-ng للبناء على OSX 10.9 لـ x86_64 Linux. لقد استخدمت المنشور المفيد للغاية في كيفية بناء مركب متقاطع في مجلس التعاون الخليجي بقلم جيف برنش ونصه هنا كأساس للنص الذي عمل بالنسبة لي. لا يعمل البرنامج النصي في الرابط عند تجميع GLIBC على نسختي من OSX (والتي يبدو أنها شكوى شائعة جدًا لأولئك الذين يتنقلون من OSX إلى Linux).

نصي هنا: https://github.com/johnlondon/cross-compile-toolchain-for-linux-on-osx

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