سؤال

أنا أحاول أن أتعلم GNUMake لمشروع صغير أنا أعمل على.حتى الآن, حتى "الأساسية" دروس يبدو صعب جدا و يجب أن معنى makefile الجملة.

هل من أحد لديه بعض موارد جيدة من المبتدئين المطلقة للحصول على دراية GNUMake?

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

المحلول

وهذا دليل قاطع هو http://www.gnu.org/software/ جعل / دليل / make.html
هناك كتاب أورايلي "إدارة المشاريع مع GNU تقديم" التي لديها مزيد من التوضيح. يمكنك أيضا يستخدم الطبعات السابقة، فإنها لا تغطي GnuMake على وجه التحديد ولكن هي أرق كثيرا.

تأكد هو السر القذر بين المطورين - لا أحد منا فهم ذلك، علينا فقط استعارة النصي جعل من شخص آخر وتغييره. أتصور برنامج نصي واحد فقط كان من أي وقت مضى خطية من الصفر (وربما من قبل خالق الأداة).

عند ما عليك القيام به أكثر من مثال بسيط معظم الناس إما التحول إلى بناء نظام أكثر حداثة مثل النمل أو القوائم الخاصة بهم في بيرل / بيثون / الخ.

نصائح أخرى

الأكثر استخداما ميزات تجعل يمكن تقسيمها إلى عدة مفاهيم بسيطة, أهداف, تبعيات و المتغيرات.

الأهداف هي الأشياء التي كنت ترغب في بناء ، ولكن الأمر(s) تحت الهدف مترجم الأوامر أو البرامج النصية.عموما كل هدف يشير إلى وحدة في التعليمات البرمجية الخاصة بك, ولكن يمكنك أن تجعل هذه الحبيبية كما تريد لتناسب مشروعك.

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

المتغيرات ليست دائما ضرورية ، ولكن هي مفيدة جدا في التعامل مع أشياء مثل مترجم الأعلام.الكنسي أمثلة CC CCFLAGs والتي سوف تشير إلى المترجم الخاص بك باستخدام أيدول مجلس التعاون الخليجي و أعلام مثل -ansi -الجدار -o2.

أكثر زوجين العامة النصائح والحيل:

  • الأوامر يجب أن أن شرع من قبل [tab] حرف ، أو أنها لن يعدم هذا هو مجرد بقايا من, أنا لا أذكر لماذا هذا هو.
  • حسب الاتفاقية ، قد ترغب في تضمين كل هدف إلى تحديد الافتراضي الذي ينبغي أن يكون الهدف الافتراضي.وهذا مفيد عندما يكون لديك معقدة makefile و هناك هدف معين تريد دائما أن يكون الافتراضي.
  • الخاص بك makefile ينبغي أن يسمى makefile أو Makefile, ولكن إذا كنت تريد أن نسميها أي شيء آخر ، استخدام $make-f [makefilename]
  • دائما استخدام كامل متغير التوسع في بناء الجملة أي$(متغير) أو جعل لا يجوز إخراج الأوامر التي تريدها.
  • جعل العمل بشكل متكرر ، حتى إذا كان لديك مجموعة من وحدات فرعية في المشروع التي تعيش داخل المجلدات ، يمكنك الاتصال على sub-directory makefile من خلال جعل لبناء لكل منهما.
  • إذا كان لديك حقا معقدة مشروع يحتاج تثبيت البرامج النصية ، إلخ.عليك ربما تريد أيضا أن التحقيق autotools الذي يولد makefile بالنسبة لك و لا حفنة من الحيل للتحقق من وجود مكتبة وغيرها من قابلية القضايا.

و"إدارة المشاريع مع GNU تقديم، 3rd طبعة" وضعت تحت عنوان "GNU رخصة الوثائق الحرة" ويمكن قراءتها من الناحية القانونية على الانترنت مجانا: <لأ href = "https://www.safaribooksonline.com/library/view/ إدارة المشاريع مع / 0596006101 / "يختلط =" نوفولو "> رابط .

وأنا أتفق مع الكتاب اقتراح أورايلي.

لبعض النصائح المفيدة والحيل ونظرة ثاقبة نظرة الصنع في السيد . جعل المواد

وMGB: انه أسوأ من ذلك أن هذا. أنا مرة واحدة فعلت إرسال بريد نظام معقد جعل من الصفر (بضعة آلاف من الملفات، خمسين أو مائة الدلائل، أربعة أو خمسة المجمعين والأهداف عبر تجميع، 2 OS، وما إلى ذلك). جلست وتعلمت جنو تجعل من الداخل والخارج أولا، تصميم النظام، لعبت حوالي مع النموذج الأول. كنا جميعا سعداء جدا بالنتيجة.

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

وأنا لست مروحة كبيرة من نظام المعلومات GNU، لكنني وجدت GNU جعل صفحات المعلومات إلى أن تكون مفيدة جدا. بمجرد أن تعرف المفاهيم الأساسية جدا وتقريبا أي نوع من الأشياء المتوفرة، ولقد وجدت أن صفحات المعلومات هي أسرع طريقة للإشارة المعلومات مثل وظائف التي سبق إنشاؤها، على سبيل المثال.

و(نسيت برنامج info GNU، واستخدام مثل pinfo بدلا من ذلك).

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