rmkdepend - מקוון בענן

זוהי הפקודה rmkdepend שניתן להפעיל בספק האירוח החינמי של OnWorks באמצעות אחת מתחנות העבודה המקוונות המרובות שלנו, כגון Ubuntu Online, Fedora Online, אמולטור מקוון של Windows או אמולטור מקוון של MAC OS

תָכְנִית:

שֵׁם


rmkdepend - צור תלות בקבצי makefile (גרסת ROOT)

תַקצִיר


rmkdepend [ -Dשם=def ] [ -Dשם ] [ -Iכלולותיר ] [ -Yכלולותיר ] [ -a ] [ -fקובץ מיידי
] [ -oסיומת obj ] [ -pobjprefix ] [ -sמחרוזת ] [ -wרוחב ] [ -v ] [ -m ] [ -- אפשרויות אחרות
-- ] קובץ מקור [ -tשם קובץ יעד ]...

תיאור


השמיים rmkdepend התוכנית קוראת כל אחד קובץ מקור ברצף ומנתח אותו כמו C-
מעבד קדם, מעבד הכל #לִכלוֹל, #לְהַגדִיר, #undef, #ifdef, #ifndef, #endif, #אם,
#elif ו #else הנחיות כדי שיוכל לומר בצורה נכונה איזה #לִכלוֹל, הנחיות היו
לשמש בקומפילציה. כל #לִכלוֹל, הנחיות יכולות להתייחס לקבצים שיש להם אחרים
#include הנחיות, וניתוח יתרחש גם בקבצים אלה.

כל קובץ שא קובץ מקור כולל, במישרין או בעקיפין, הוא מה rmkdepend קורא א
תלות. התלות הללו נכתבות לאחר מכן ל-a קובץ מיידי בדרך כזו ש לעשות(1)
יידע אילו קבצי אובייקט חייבים להידור מחדש כאשר תלות השתנתה.

כברירת מחדל, rmkdepend ממקם את הפלט שלו בקובץ בשם קובץ מיידי אם הוא קיים, אחרת
Makefile. ניתן לציין makefile חלופי עם -f אוֹפְּצִיָה. זה קודם מחפש
ה-makefile עבור הקו

# אל תמחקו את השורה הזו -- ההתאמה תלויה בזה.

או אחד שסופק עם -s אפשרות, כמפריד עבור פלט התלות. אם זה מוצא
זה, זה ימחק את כל מה שאחרי זה עד לסוף ה-makefile וישים את הפלט
אחרי השורה הזו. אם הוא לא מוצא אותו, התוכנית תוסיף את המחרוזת לסוף
ה-makefile ומקם את הפלט שאחריו. לכל אחד קובץ מקור מופיעים ב-
שורת פקודה, rmkdepend מכניס שורות בקובץ makefile של הטופס

sourcefile.o: dfile ...

איפה sourcefile.o הוא השם משורת הפקודה כשהסיומת שלו מוחלפת ב-``.o'',
ו dfile היא תלות שהתגלתה ב-a #include הנחיה בזמן הניתוח קובץ מקור or
אחד הקבצים שהוא כלל.

הערה


השמיים rmkdepend היישום מבוסס על תלות מקדמית(1) מקונסורציום X, אך שונה
מעט כדי להתאים לצרכים של שורש מערכת. זֶה איש(1) עמוד זהה פחות או יותר
ל-manpage עבור תלות מקדמית(1), למעט הודעה זו, וה לִרְאוֹת גם ו מחברים
סעיפים.

דוגמא


בדרך כלל, rmkdepend ישמש ב-makefile target כך שהקלדת ``make depend'' תהיה
עדכן את התלויות עבור ה-makefile. לדוגמה,
SRCS = file1.c file2.c ...
CFLAGS = -O -DHACK -I../foobar -xyz
לִסְמוֹך:
rmkdepend -- $(CFLAGS) -- $(SRCS)

אפשרויות


התוכנית תתעלם מכל אפשרות שהיא לא מבינה כדי שתוכל להשתמש ב-
אותם טיעונים שהייתם בעד cc(1).

-Dשם=def or -Dשם
לְהַגדִיר. זה מציב הגדרה עבור שם in של rmkdepend טבלת סמלים. לְלֹא = דפ
הסמל הופך להיות מוגדר כ``1''.

-Iכלולותיר
כלול ספרייה. אפשרות זו מספרת rmkdepend להתכונן מראש כלולותיר לרשימת ה-
ספריות לחיפוש כאשר הוא נתקל ב- #include הוֹרָאָה. כברירת מחדל, rmkdepend
רק החיפושים הסטנדרטיים כוללים ספריות (בדרך כלל / usr / include ואולי א
ספרייה תלויה מהדר).

-Yכלולותיר
החלף את כל ספריות ה-include הסטנדרטיות ב-include היחיד שצוין
מַדרִיך; אתה יכול להשמיט את כלולותיר פשוט למנוע חיפוש בתקן
לכלול ספריות.

-a הוסף את התלות לסוף הקובץ במקום להחליף אותן.

-fקובץ מיידי
שם קובץ. זה מאפשר לך לציין makefile חלופי שבו rmkdepend יכול
למקם את הפלט שלו. ציון ``-'' כשם הקובץ (כלומר, -פ-) שולח את הפלט אל
פלט סטנדרטי במקום לשנות קובץ קיים.

-oסיומת obj
סיומת קובץ אובייקט. מערכות מסוימות עשויות להכיל קבצי אובייקט שהסיומת שלהם היא משהו
מלבד ``.o''. אפשרות זו מאפשרת לך לציין סיומת אחרת, כגון ``.b''
עם -אוב או ``:obj'' עם -o:obj וכן הלאה.

-pobjprefix
קידומת קובץ אובייקט. הקידומת מוצמדת לפני השם של קובץ האובייקט. זה
משמש בדרך כלל כדי לייעד ספרייה אחרת עבור קובץ האובייקט. ברירת המחדל היא
המחרוזת הריקה.

-sמחרוזת
מפריד מחרוזת מתחיל. אפשרות זו מאפשרת לך לציין מחרוזת אחרת עבור
rmkdepend לחפש ב-makefile.

-wרוחב
רוחב קו. בדרך כלל, rmkdepend יבטיח שכל שורת פלט שהוא כותב
לא יהיה רחב מ-78 תווים למען הקריאה. אפשרות זו מאפשרת
לך לשנות את הרוחב הזה.

-v פעולה מפורטת. אפשרות זו גורמת rmkdepend כדי לפלוט את רשימת הקבצים הכלולים
לפי כל קובץ קלט בפלט סטנדרטי.

-m הזהיר מפני הכללה מרובה. אפשרות זו גורמת rmkdepend לייצר אזהרה אם
כל קובץ קלט כולל קובץ אחר יותר מפעם אחת. בגרסאות קודמות של
rmkdepend זו הייתה התנהגות ברירת המחדל; ברירת המחדל שונתה להתאמה טובה יותר
ההתנהגות של מהדר C, שאינו מחשיב הכללה מרובה כ-an
שְׁגִיאָה. אפשרות זו ניתנת עבור תאימות לאחור, וכדי לסייע באיתור באגים
בעיות הקשורות להכללה מרובה.

-- אפשרויות --
If rmkdepend נתקל במקף כפול (--) ברשימת הארגומנטים, ולאחר מכן בכל
טיעון לא מזוהה בעקבותיו יתעלם בשקט; מקף כפול שני
מפסיק את הטיפול המיוחד הזה. בדרך זו, rmkdepend ניתן לבצע בבטחה
התעלם מארגומנטים מהדר אזוטריים שעלולים להימצא בדרך כלל ב-CFLAGS לעשות
מאקרו (ראה את דוגמא הסעיף למעלה). כל האפשרויות ש rmkdepend מזהה ו
מופיעים בין צמד המקפים הכפולים מעובדים כרגיל.

-tשם קובץ יעד
שם קובץ. זה מאפשר לך לציין שם קובץ יעד חלופי לשימוש עבור
הקובץ הקודם. למשל אם אתה מתקשר

rmkdepend ‐sobj ‐pbuild file.cxx ‐tlibrary.so

במקום להכניס את הקו

build/file.obj: ...

rmkdepend יכניס:

library.so: ...

אַלגוֹרִיתְם


הגישה המשמשת בתוכנית זו מאפשרת לה לפעול בסדר גודל מהר יותר מכל אחת מהן
``מחולל תלות'' אחר שאי פעם ראיתי. מרכזי בהופעה הזו שניים
הנחות: שכל הקבצים שקומפילו על ידי makefile בודד יקומפילו בערך
אותו דבר -I ו -D אפשרויות; ושרוב הקבצים בספרייה בודדת יכללו במידה רבה
אותם קבצים.

בהינתן הנחות אלו, rmkdepend מצפה להיקרא פעם אחת עבור כל makefile, עם הכל
קבצי מקור שמתוחזקים על ידי ה-makefile המופיע בשורת הפקודה. זה מנתח
כל מקור וקובץ כולל פעם אחת בדיוק, תוך שמירה על טבלת סמלים פנימית לכל אחד.
לפיכך, הקובץ הראשון בשורת הפקודה ייקח פרק זמן פרופורציונלי ל-
משך הזמן שלוקח מעבד קדם C רגיל. אבל בקבצים הבאים, אם זה
נתקל בקובץ include שהוא כבר מנותח, הוא לא מנתח אותו שוב.

לדוגמה, דמיינו שאתם מרכיבים שני קבצים, קובץ 1. ג ו file2.c, כל אחד מהם כולל
את קובץ הכותרת header.h, והקובץ header.h בתורו כולל את הקבצים def1.h ו
def2.h. כשאתה מריץ את הפקודה

rmkdepend file1.c file2.c

rmkdepend ינתח קובץ 1. ג וכתוצאה מכך, header.h ולאחר מכן def1.h ו def2.h. It
לאחר מכן מחליט כי התלות עבור קובץ זה הן

file1.o: header.h def1.h def2.h

אבל כשהתוכנית מנתחת קובץ 2. ג ומגלה שגם זה כולל header.h, זה עושה
לא לנתח את הקובץ, אלא פשוט להוסיף header.h, def1.h ו def2.h לרשימת
תלות עבור file2.o.

השתמש ב-rmkdepend באינטרנט באמצעות שירותי onworks.net



התוכניות המקוונות האחרונות של לינוקס ו-Windows