אנגליתצרפתיתספרדי

Ad


סמל OnWorks

icheck - מקוון בענן

הפעל את icheck בספק האירוח החינמי של OnWorks על אובונטו מקוון, פדורה מקוון, אמולטור מקוון של Windows או אמולטור מקוון של MAC OS

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

תָכְנִית:

שֵׁם


icheck - בודק ABI/API ממשק C

תַקצִיר


אני בודק --קנוניפי [[--קו הבסיס קובץ] ...] [אפשרויות] [GCC_OPTIONS] [--] קבצים

אני בודק --לְהַשְׁווֹת [אפשרויות] old_file קובץ חדש

תיאור


כלי לבדיקה סטטית של ממשקי C לשינויי API ו-ABI. כל השינויים לסוג
יש לזהות הצהרות שיכולות לגרום לשינויי ABI, יחד עם רוב השינויים ב-API.

icheck מיועד לשימוש עם ספריות, כשיטה למניעת סחיפה של ABI.

פקודות


צמצם קבוצה של קבצי מקור לקובץ ממשק קנוני באמצעות --canonify, ולאחר מכן השווה
שני קבצי ממשק כאלה עם --compare. אם יש שינויים בממשק ביניהם,
icheck יתאר את השינויים ויכשל.

--קנוניפי [[--קו הבסיס קובץ] ...] [אפשרויות] [GCC_OPTIONS] [--] קבצים

קנונית את קובצי קוד המקור (בדרך כלל כותרות .h) שיש להשוות איתם מאוחר יותר
--לְהַשְׁווֹת. משמש בדרך כלל עם -o אפשרות לשמור את הסיכום בקובץ.

--לְהַשְׁווֹת [אפשרויות] old_file קובץ חדש

קורא שני קבצי ממשק קנוניים שנוצרו עם --קנוניפי ומשווה את
מבנה קוד המקור לשינויים בממשק היישום הציבורי
(ממשק המפתחים או ה-API) והממשק הבינארי של יישומים (ABI) של פעם
קישור מול תוכניות או ספריות אחרות.

אפשרויות


אני בודק אפשרויות
-o, --תְפוּקָה קובץ

פלט פלט ל-FILE, במקום stdout.

--לנפות N

זרוק מידע על ניפוי באגים.

--רק דָבָר

עבד רק את הדבר הנתון.

--דלג-מאת קובץ

דלג על דברים מיותרים קובץ.

--דלג-מ-re regexp

דלג על דברים מיותרים מקבצים התואמים לביטוי הרגולרי.

--רק מ קובץ

רק לקחת דברים מ קובץ.

--רק מ-re regexp

קח דברים רק מקבצים התואמים לביטוי הרגולרי.

GCC_OPTIONS

GCC_OPTIONS מועברים ל-gcc -E

עזרה אפשרויות
- עזרה
הצג את תקציר העזרה עבור אני בודק.

דוגמאות


כל קובצי המקור מעובדים מראש עם gcc, כך ש-canonify צריך מידע זהה
כקוד המקור - עקוב אחר התחביר מה-Makefile כדי לכלול אפשרויות -I cpp (אוֹ
gcc) כך שניתן יהיה לאתר את כל הכותרות הנחוצות. אני בודק יבטל אם יידרש
לא ניתן למצוא כותרות. המקור חייב להיות בר קומפילציה; icheck לא יכול לעבד קבצים אשר
לא ניתן להרכיב ישירות. אם חסרה כותרת #include הצהרות, או אחרת
דורש שימוש בצורה מיוחדת, אז לא ניתן לעבד אותו ישירות עם icheck.
במקום זאת, כתוב קובץ stub C שמגדיר דברים כראוי ולאחר מכן #includes את
כותרת.

אני בודק --קנוניפי -o ~/icheck/oldversion -I/usr/include/foo-2.0 /usr/src/bar/src/foobar.h

הכן סיכום טקסט של קובץ foobar.h וכל הקבצים שהוא כולל. הסיכום הוא
נכתב אל ~/icheck/oldversion. חזור על /usr/src/bar1/src/foobar.h - אותו קובץ
בספריית המקור החדשה יותר, פלט לקובץ חדש, למשל ~/icheck/newversion.

אני בודק --לְהַשְׁווֹת -o ~/icheck/results.txt ~/icheck/oldversion ~/icheck/newversion

כותב את דוח ההשוואה בין שני תיקי הסיכום. הדו"ח מציין את כל
שינויים ב-ABI ו/או ב-API שנמצאו במהלך ההשוואה.

אני בודק --קנוניפי -o debian/icheck.canonical -Idebian/foo-dev/usr/include debian/foo-
dev/usr/include/foobar.h

אני בודק --לְהַשְׁווֹת debian/icheck.manifest debian/icheck.canonical

שתי הצהרות אלו, הכלולות ב-א דביאן/כללים קובץ, יגרום לבניית החבילה
נכשל אם ה-API או ABI השתנו בדרכים בלתי צפויות, כאשר icheck.manifest הוא עותק של
הממשק הצפוי, כלול בחבילה.

שימו לב שהארגומנטים ל--compare הם עצמם קבצי C חוקיים אשר מעובדים מראש,
אז icheck.manifest יכול להכיל לוגיקה של קדם-מעבד C. זה יכול להיות שימושי כאשר חבילה
מייצא ממשקים שונים בהתאם לארכיטקטורת המארח. במקרה זה, אתה לא יכול
החלף אותו בעותק חדש של icheck.canonical כאשר הממשק משתנה ואתה צריך
לעדכן את המניפסט. במקום לעדכן את כל המניפסט ביד, הניחו את היד-
תיאורי ממשק כתובים בקובץ אחד (icheck.static-manifest) ולאחר מכן השתמש ב:

אני בודק --קנוניפי --קו הבסיס debian/icheck.static-manifest -o debian/icheck.dynamic-
גלוי

לבסוף, צור icheck.manifest המכיל:
#include "icheck.static-manifest"
#include "icheck.dynamic-manifest"
זה מאפשר לך לעדכן חלקים מסוימים של המניפסט ביד, ועדיין אוטומטית
לייצר את השאר.

תפוקה


icheck מייצר תיאור ארוך של כל שינוי API או ABI אפשרי, בהתבסס על סוג
מֵידָע. זה לא חוקר את קוד התוכנית בפועל, ולכן זה אפשרי
חלק מהשינויים שהוא מזהה אינם שינויים ממשיים ב-ABI או ב-API. עם זאת, זה בדרך כלל
קורה רק כאשר קוד התוכנית נכתב עבורו במפורש. אם יש ספק, נניח שכן
השתנה.

בסוף, icheck מספקת סיכום של השינויים. שימו לב שההנחיות כאן
תלוי בסדר הטיעונים כדי --השוואה: הממשק הישן יותר חייב לבוא קודם,
או שהכיוונים יהיו הפוכים. המשמעויות של המונחים השונים הם כמו
התעופה

ABI ה-ABI תואם אם דברים מורכבים כנגד גרסה אחת של ה-
הממשק יעבוד בעת הפעלה באמצעות הגרסה האחרת.

API ה-API תואם אם דברים מורכבים מול גרסה אחת של
ניתן להרכיב ממשק מול השני.

תואם קדימה
ממשק תואם קדימה אם דברים מורכבים מול הישן
הגרסה תעבוד עם הגרסה החדשה. זו התכונה החשובה עבור soname
שינויים.

תואם לאחור
ממשק תואם לאחור אם דברים מורכבים מול החדש
הגרסה תעבוד עם הישנה. זו התכונה החשובה עבור שליבס
גרסה שינויים. אם אתה לא בונה חבילות דביאן, כנראה שלא
אכפת משינויים שאינם תואמים לאחור.

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


שרתים ותחנות עבודה בחינם

הורד אפליקציות Windows & Linux

פקודות לינוקס

Ad