هذا هو الأمر rmkdepend الذي يمكن تشغيله في موفر الاستضافة المجاني OnWorks باستخدام إحدى محطات العمل المجانية المتعددة عبر الإنترنت مثل Ubuntu Online أو Fedora Online أو محاكي Windows عبر الإنترنت أو محاكي MAC OS عبر الإنترنت
برنامج:
اسم
rmkdepend - إنشاء التبعيات في ملفات makefiles (إصدار ROOT)
موجز
rmkdepend [ -Dالاسم=صفر ] [ -Dالاسم ] [ -Iبما في ذلك ] [ -Yبما في ذلك ] [ -a ] [ -fMAKEFILE
] [ -oobjsuffix ] [ -pobjprefix ] [ -sسلسلة ] [ -wعرض ] [ -v ] [ -m ] [- خيارات أخرى
-] مصدر الملف [ -ttargetfilename ] ...
الوصف
إنّ كافة أنواع عهود الـ rmkdepend يقرأ كل برنامج مصدر الملف بالتسلسل ويوزعها مثل C-
المعالج ، معالجة جميع #يشمل، #يُعرِّف، # صندوق ، #ifdef ، # افندف، #إنهاء إذا، #لو،
#elif و #else التوجيهات حتى يتمكن من معرفة أي منها بشكل صحيح #يشمل، توجيهات
تستخدم في التجميع. أي #يشمل، يمكن أن تشير التوجيهات إلى الملفات التي لها ملفات أخرى
تتضمن # التوجيهات ، وسيحدث التحليل في هذه الملفات أيضًا.
كل ملف مصدر الملف يتضمن ، بشكل مباشر أو غير مباشر ، ما هو rmkdepend يدعو أ
الاعتماد. ثم تتم كتابة هذه التبعيات في ملف MAKEFILE في مثل هذه الطريقة التي جعل(1)
سيعرف ملفات الكائنات التي يجب إعادة تحويلها برمجيًا عند تغيير التبعية.
افتراضيا، rmkdepend يضع مخرجاته في الملف المسمى MAKEFILE إذا كانت موجودة ، خلاف ذلك
ملف تعريف. يمكن تحديد ملف makefile بديل بامتداد -f خيار. يقوم بالبحث أولاً
ملف التعريف للخط
# لا تحذف هذا السطر - اجعله يعتمد عليه.
أو واحد مع -s الخيار ، كمحدد لإخراج التبعية. إذا وجد
فإنه سيحذف كل شيء بعد ذلك حتى نهاية ملف makefile ويضع الإخراج
بعد هذا الخط. إذا لم يتم العثور عليه ، فسيقوم البرنامج بإلحاق السلسلة بنهاية
ملف makefile ووضع الإخراج بعد ذلك. لكل مصدر الملف تظهر على
سطر الأوامر، rmkdepend يضع سطورًا في ملف makefile من النموذج
sourcefile.o: ملف ...
في Sourcefile.o هو الاسم من سطر الأوامر مع استبدال لاحقته بـ ".o" ،
و دفيلي هي تبعية تم اكتشافها في ملف تتضمن # التوجيه أثناء الإعراب مصدر الملف or
أحد الملفات التي تضمنها.
نوت
إنّ كافة أنواع عهود الـ rmkdepend يعتمد التطبيق على com.makedepend(1) من اتحاد X، ولكن معدلة
قليلا لتناسب احتياجات ROOT النظام. هذه رجل(1) الصفحة متطابقة إلى حد ما
إلى الصفحة الرئيسية ل com.makedepend(١) فيما عدا هذا التنبيه رؤية أيضا و مؤلفون
أقسام.
مثال
عادة، rmkdepend سيتم استخدامها في هدف makefile بحيث تكون كتابة `` make يعتمد '' على الإرادة
قم بتحديث التبعيات لملف makefile. على سبيل المثال،
سركس = file1.c file2.c ...
CFLAGS = -O -DHACK -I ../ foobar -xyz
تعتمد:
rmkdepend -- $(CFLAGS) -- $(SRCS)
OPTIONS
سيتجاهل البرنامج أي خيار لا يفهمه حتى تتمكن من استخدام ملف
نفس الحجج التي تريدها cc(1).
-Dالاسم=صفر or -Dالاسم
يُعرِّف. هذا يضع تعريفًا لـ الاسم in rmkdepend's جدول الرموز. بدون = def
يتم تعريف الرمز على أنه `` 1 ''.
-Iبما في ذلك
تضمين الدليل. هذا الخيار يقول rmkdepend إلى prepend بما في ذلك إلى قائمتها
الدلائل للبحث عندما يواجه أ تتضمن # التوجيه. بشكل افتراضي، rmkdepend
عمليات البحث القياسية فقط تشمل الدلائل (عادةً / البيرة / تتضمن وربما أ
دليل يعتمد على المترجم).
-Yبما في ذلك
استبدل جميع أدلة التضمين القياسية بالتضمين الفردي المحدد
الدليل؛ يمكنك حذف بما في ذلك لمنع البحث في المعيار
تشمل الدلائل.
-a قم بإلحاق التبعيات بنهاية الملف بدلاً من استبدالها.
-fMAKEFILE
اسم الملف. هذا يسمح لك بتحديد makefile بديل فيه rmkdepend يمكن
ضع ناتجها. تحديد "- '' كاسم الملف (على سبيل المثال ، -F-) يرسل الإخراج إلى
الإخراج القياسي بدلاً من تعديل ملف موجود.
-oobjsuffix
لاحقة ملف الكائن. قد تحتوي بعض الأنظمة على ملفات كائنات لها لاحقة شيء ما
بخلاف ".o ''. يتيح لك هذا الخيار تحديد لاحقة أخرى ، مثل ".b"
مع -ob أو ``: obj '' مع -o: obj وهكذا دواليك.
-pobjprefix
بادئة ملف الكائن. يتم إضافة البادئة إلى اسم ملف الكائن. هذا هو
عادة ما تستخدم لتعيين دليل مختلف لملف الكائن. الافتراضي هو
السلسلة الفارغة.
-sسلسلة
بدء محدد السلسلة. يسمح لك هذا الخيار بتحديد سلسلة مختلفة لـ
rmkdepend للبحث عنه في makefile.
-wعرض
عرض الخط. عادة، rmkdepend سيضمن أن كل سطر إخراج يكتبه
لن يكون أكبر من 78 حرفًا من أجل سهولة القراءة. هذا الخيار يتيح
لك لتغيير هذا العرض.
-v عملية مطولة. هذا الخيار يسبب rmkdepend لإرسال قائمة الملفات المضمنة
بواسطة كل ملف إدخال على الإخراج القياسي.
-m تحذير من التضمين المتعدد. هذا الخيار يسبب rmkdepend لإنتاج تحذير إذا
يتضمن أي ملف إدخال ملفًا آخر أكثر من مرة. في الإصدارات السابقة من
rmkdepend كان هذا هو السلوك الافتراضي؛ تم تغيير الإعداد الافتراضي ليتوافق بشكل أفضل
سلوك مترجم C، الذي لا يعتبر التضمين المتعدد بمثابة
خطأ. يتم توفير هذا الخيار للتوافق مع الإصدارات السابقة وللمساعدة في تصحيح الأخطاء
المشاكل المتعلقة بالإدراج المتعدد.
-- الخيارات --
If rmkdepend يصادف واصلة مزدوجة (-) في قائمة الوسائط ، ثم أي منها
الحجة غير المعترف بها التي تليها سيتم تجاهلها بصمت ؛ واصلة مزدوجة ثانية
ينهي هذه المعاملة الخاصة. في هذا الطريق، rmkdepend يمكن أن يتم بأمان
تجاهل وسيطات المترجم الباطني التي قد توجد عادة في CFLAGS جعل
ماكرو (انظر ملف مثال أعلاه). كل الخيارات التي rmkdepend يتعرف و
تظهر بين زوج من الواصلات المزدوجة تتم معالجتها بشكل طبيعي.
-ttargetfilename
اسم الملف. يتيح لك هذا تحديد اسم ملف هدف بديل لاستخدامه في ملف
الملف السابق. على سبيل المثال إذا اتصلت
rmkdepend -sobj -pbuild file.cxx -tlibrary.so
بدلاً من إدخال السطر
بناء/file.obj: ...
rmkdepend سيتم إدراج:
Library.so: ...
الخوارزمية
الطريقة المستخدمة في هذا البرنامج تمكنه من تشغيل ترتيب من حيث الحجم أسرع من أي شيء آخر
`` منشئ التبعية '' الآخر الذي رأيته في حياتي. هناك نوعان أساسيان في هذا الأداء
الافتراضات: أن جميع الملفات التي تم تجميعها بواسطة ملف makefile واحد سيتم تجميعها تقريبًا
نفس الشيء -I و -D خيارات؛ وأن معظم الملفات في دليل واحد ستتضمن إلى حد كبير
نفس الملفات.
بالنظر إلى هذه الافتراضات ، rmkdepend تتوقع أن يتم استدعاؤها مرة واحدة لكل makefile ، مع الكل
تظهر الملفات المصدر التي يتم الاحتفاظ بها بواسطة makefile في سطر الأوامر. يوزع
كل مصدر وتضمين الملف مرة واحدة بالضبط ، مع الاحتفاظ بجدول رموز داخلي لكل منها.
وبالتالي ، فإن الملف الأول في سطر الأوامر سيستغرق مقدارًا من الوقت يتناسب مع ملف
مقدار الوقت الذي يستغرقه المعالج الأولي C العادي. ولكن في الملفات اللاحقة ، إذا كان
يواجه ملف التضمين الذي تم تحليله بالفعل ، ولا يقوم بتحليله مرة أخرى.
على سبيل المثال ، تخيل أنك تجمع ملفين ، file1.c و file2.c ، كل منهم يشمل
ملف الرأس header.h ، والملف رأس. h بدوره يشمل الملفات def1.h و
def2.h. عند تشغيل الأمر
rmkdepend file1.c file2.c
rmkdepend سوف يحلل file1.c وبالتالي ، رأس. h وثم def1.h و def2.h. It
ثم يقرر أن تبعيات هذا الملف هي
file1.o: header.h def1.h def2.h
ولكن عندما يوزع البرنامج file2.c ويكتشف أنه يشمل أيضًا header.h ، نعم هو كذلك
لا تحلل الملف ، ولكن ببساطة يضيف header.h ، def1.h و def2.h إلى قائمة
التبعيات ل file2.o.
استخدم rmkdepend عبر الإنترنت باستخدام خدمات onworks.net