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

Ad


סמל OnWorks

include_server - מקוון בענן

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

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

תָכְנִית:

שֵׁם


include_server.py - קירוב שמרני של תלות כלול עבור C/C++

תַקצִיר


include_server --נמל INCLUDE_SERVER_PORT [אופציות]

תיאור


include_server.py מתחיל תהליך כולל שרת. תהליך זה עונה על שאילתות מאת
distcc(1) לקוחות לגבי אילו קבצים לכלול בקופילציות C/C++. הקובץ include_server.py
הפקודה עצמה מסתיימת ברגע שהשרת include נוצר.

הארגומנט INCLUDE_SERVER_PORT הוא שם של שקע המשמש לכל תקשורת
בין לקוחות distcc לשרת include. ה distcc-משאבה(1) הפיקוד אחראי
ליצירת מיקום השקע, להעברתו לסקריפט הזה ולהעברתו לכולם
לקוחות distcc באמצעות משתנה הסביבה בשם INCLUDE_SERVER_PORT.

הפרוטוקול המשמש את שרת include משתמש ביישום RPC של distcc. כל דיסק
הבקשה מורכבת מ-(1) הספרייה הנוכחית ו-(2) רשימת הארגומנטים של
פקודת קומפילציה.

אם שרת include מסוגל לעבד את הבקשה, אז הוא עונה ללקוח distcc על ידי
שליחת רשימה של נתיבי קבצים. נתיבי הקובץ הם אלה של המקור והכותרת הדחוסים
קבצים שנמצאו נחוצים להידור באמצעות ניתוח כולל. גם הרשימה
כולל קישורים סמליים ואפילו קבצי דמה הדרושים לשרת ההידור
לבנות העתק מדויק של חלקי מערכת הקבצים הדרושים להידור. ב
בדרך זו, קובץ כותרת נדרש כמו /path/foo.h נדחס, שונה שם ומאוחסן בקובץ
מיקום זמני, כגון /dev/shm/tmpiAvfGv.include_server-9368-1/path/foo.h.lzo. ה
לקוח distcc יעביר את הקבצים האלה לשרת קומפילציה, שם הם יהיו
לא דחוס ומותקן באופן זמני.

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

ישנם שני סוגים של כשלים הקשורים לשרת include. השרת כולל עשוי
נכשל בחישוב כולל או נכשל בדרכים אחרות, ראה סעיף לִכלוֹל שרת - סימפטומים.
כמו כן, ההידור בשרת ההסרה עלול להיכשל עקב חוסר התאמה של המחושב
לכלול סגירה, אך לאחר מכן להצליח כאשר ניסוי חוזר מקומי, ראה סעיף DISTCC אִי הַתְאָמָה
- סימפטומים.

אוֹפְּצִיָה סיכום


האפשרויות הבאות מובנות על ידי include_server.py.

-dPAT, --debug_pattern=PAT
וקטור סיביות להפעלת אזהרות וניפוי באגים
1 = אזהרות
2 = התחקות אחר פונקציות מסוימות
כוחות אחרים של שניים: ראה include_server/basics.py.

, --אימייל
שלח אימייל אל 'distcc-pump-errors' או אם הוגדר, הערך של משתנה הסביבה
DISTCC_EMAILLOG_WHOM_TO_BLAME, כאשר שרת כלול נקלע לבעיה. ברירת המחדל היא
לא לשלוח מייל.

--email_bound מספר
מספר מרבי של מיילים לשלוח (בנוסף למייל סופי). ברירת מחדל: 3.

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

--path_observation_re=RE
שלח הודעת אזהרה בכל פעם ששם קובץ נפתר לנתיב אמיתי שמותאם
על ידי RE, שהוא ביטוי רגולרי בתחביר Python. זה שימושי למציאת
מהיכן הקבצים הכלולים מגיעים בפועל. השתמש ב-RE="" כדי למצוא את כולם. הערה:
אזהרות חייבות להיות מופעלות עם לפחות -d1.

--pid_file FILEPATH
ה-pid של שרת include נכתב לקובץ FILEPATH. זה מאפשר סקריפט
כמו distcc-משאבה להרוס את שרת include.

-ס, --סטָטִיסטִיקָה
הדפס מידע ל-stdout אודות ניתוח כולל.

--stat_reset_triggers=LIST
שטף מטמונים סטטיסטיים כאשר חותמת הזמן של נתיב קובץ כלשהו ב-LIST משתנה או את
filepath נכנס או יוצא מקיומה. LIST היא מחרוזת מופרדת בנקודתיים של
נתיבי קבצים, אולי מכילים גלובים פשוטים (כפי שמותר במודול הגלוב של Python).
הדפס אזהרה בכל פעם ששינוי כזה קורה (אם אזהרות מופעלות). זֶה
אפשרות מאפשרת חריגים מוגבלים להנחה הרגילה של distcc-pump שמקור זה
הקבצים אינם משתנים במהלך הבנייה.

-ט, --זְמַן
הדפס שחלף, זמן משתמש ומערכת לסטדר.

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

ליתר דיוק, עם --unsafe_absolute_includes מתעלמים מ-absolute include
מטרות איסוף הסגר כוללות. שימוש באפשרות זו עשוי להוביל ל
תוצאות שגויות כי (1) ייתכן שהכותרת באמת נכללת ב-
שרת קומפילציה וייתכן שהוא לא יהיה זהה ללקוח, (2) ה-include
הנחיות הכותרת אינן מנותחות יותר.

האפשרות שימושית להידור קוד שיש לו מיקומים מוחלטים מקודדים כאלה
של קבצי כותרות בתוך הנחיות מותנות (למשל "#ifdef") המציגות את
כולל לא רלוונטי. ליתר דיוק, יש לבטל את כל אלה במהלך
עיבוד מקדים לתצורה בפועל. ואז שאלת קיומו של ה
קובץ ה-header הוא מטומטם וההידור המרוחק הוא קול. זה קורה לעתים קרובות אם
כוללות כאלה מיועדות לתצורות חריגות השונות מהמציאות
תצורה.

-ב, --תאשר
ודא שקבצים בסגירת CPP כלולים בסגירה המחושבת על ידי include
מעבד.

-וו, --write_include_closure
כתוב קובץ .d_approx המפרט את כל הקבצים הכלולים שחושבו על ידי ה-include
שרת; עם -x, כתוב בנוסף את הקבצים הכלולים כפי שחושבו על ידי CPP ל-a
קובץ .d_exact.

-איקס, --ניתוח_מדויק
השתמש ב-CPP במקום זאת, אל תשמיט את קובצי הכותרות של המערכת.

לִכלוֹל שרת - סימפטומים ו סוגיות


ההודעות והאזהרות הסבירות ביותר שיגיעו מהמעבד הכולל מפורטות להלן.

עיבוד מוקדם מקומית. לכלול שרת לֹא כיסוי: לא יכולתי לקבוע ברירת מחדל מערכת
לכלול ספריות
כדי לקבוע את ספריות ברירת המחדל של כותרות המערכת, שרת include מריץ את
מהדר פעם אחת עבור כל שפה הדרושה במהלך ההפעלה שלו. הודעה זו מציינת
שהמהדר שצוין ל-distcc אינו קיים בלקוח.

עיבוד מוקדם מקומית. לכלול שרת לֹא כיסוי: ערבות הַחוּצָה כי לכלול שרת
בילה יותר מֵאֲשֶׁר ... ש המשתמש זמן טיפול לבקש
במצבים לא שכיחים, שרת include לא מצליח לנתח מאקרו מסובך מאוד
ביטויים. לקוח distcc ישתמש במצב distcc רגיל.

אַזהָרָה: נתיב קובץ צריך be קרוב משפחה אבל לא
שרת include אינו מקבל נתיבי קבצים מוחלטים, כגון
/usr/include/stdio.h, ב-include הנחיות, כי אין ערובה לכך
כותרת זו במחשב שרת ההידור תהיה זהה לזו שב-
לָקוּחַ. שרת include מוותר על ניתוח סגירת include. הדיסק
הלקוח לא יכול להשתמש במצב משאבה.

כדי להתגבר על בעיה זו בצורה לא תמיד מהימנה, הגדר את משתנה הסביבה
INCLUDE_SERVER_ARGS='--unsafe_absolute_includes' בעת הפעלת המשאבה distcc
סקריפט כדי להעביר את האפשרות --unsafe_absolute_includes לשרת include.

אַזהָרָה: מוּחלָט נתיב ... היה התעלמו
ה---unsafe_absolute_includes נמצא בשימוש. מצב זה קורה תחת אותו הדבר
נסיבות כמו כאשר "Filepath חייב להיות יחסי אבל הוא לא" מופק, אבל בזה
במקרה של include יספק תשובה ללקוח distcc.

אַזהָרָה: נתיב '/PATH/FILE' השתנה/בא אל תוך קיום/לא עוד קיים
אזהרות אלה מונפקות בעת שימוש בטריגרים לאיפוס סטטיסטיקה. כי /PATH/FILE
השתנה, שרת include מנקה את המטמונים שלו; הגרסה החדשה של הקובץ (או ה
חוסר זה) הופך את ניתוח הכלול ללא חוקי. הודעה זו יכולה להיות בדרך כלל
התעלמו; זה כן מסמל שימוש מסובך במקצת בקבצים על ידי מערכת ה-build.
מומלץ לתקן את מערכת ה-build כך שהקבצים לא ייכתבו מחדש.

אַזהָרָה: בעד תרגום יחידה ..., בדיקה of פילה ... נפתרה ל ... של מי שביל אמיתי is
...
אזהרה זו מתרחשת עם --path_observation_re כאשר נתיב אמיתי חדש תואם את a
קובץ המקור או הכותרת נצפה.

DISTCC אִי הַתְאָמָה - סימפטומים


האינטראקציות בין מערכת ה-build, distcc, לבין שרת include מעט
מורכב. כאשר פקודות distcc מקבל קומפילציה כושלת מהשרת המרוחק היא
מנסה מחדש את ההידור באופן מקומי. סעיף זה דן בגורמים לאי-התאמות
בין קומפילציה מרחוק למקומית. אלה מסומנים על ידי הודעת ההדחה:

__________אַזהָרָה: ... מצב משאבה אוסף(ים) נכשל on שרת, אבל הצליח מקומית.
__________Distcc-משאבה היה הורד ל פשוט מצב. לִרְאוֹת מה היא Distcc אִי הַתְאָמָה תסמינים
סעיף in מה היא include_server(1) איש עמוד.

הסקריפט distcc-pump מוציא הודעה זו בסוף ה-build. זה אומר שבמשך ב
לפחות הפעלת distcc אחת הידור מקומי הצליח לאחר ההידור מרחוק
נִכשָׁל. כל קריאת distcc שבגינה התרחשה אי התאמה כזו בתורה גם מוציאה א
הודעה כגון:

אַזהָרָה: מרחוק קומפילציה of '...' נִכשָׁל, ניסו שוב באופן מקומי ו קבל a אחר תוֹצָאָה.

ההורדה בדרגה גורמת לקריאת distcc שלאחר מכן להשתמש במצב distcc רגיל. לכן
עיבוד מקדים יתבצע במכונה המקומית למשך שארית הבנייה. זֶה
הטכניקה מונעת בנייה איטית מאוד שבה כל ההידורים מגיעים למכונה המקומית
לאחר כשל מרחוק.

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

ניתן להשבית את התנהגות החזרה של מצב distcc-pump להידור מקומי על ידי הגדרה
משתנה הסביבה DISTCC_FALLBACK ל-1, מה שגורם לפקודת distcc להיכשל בהקדם
מכיוון שההידור המרוחק נכשל. הגדרה זו שימושית מאוד לאיתור באגים מדוע
הידור מרחוק השתבש, כי כעת הפלט מהשרת יודפס.

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

אל האני המשתמש השתנה a מָקוֹר or כותרת פילה בְּמַהֲלָך מה היא לִבנוֹת.
זה מניב תוצאות לא עקביות כמובן.

A מָקוֹר or כותרת פילה השתנה בְּמַהֲלָך מה היא לִבנוֹת.
מערכת ה-build משכתבת קובץ. עבור ליבת לינוקס 2.6, זה קורה עבור
'include/linux/compile.h' ו-'include/asm/asm-offsets.h'. מצב זה קבוע
על ידי מתן הודעה לשרת include שעליו לאפס את המטמונים שלו כאשר סטטיסטיקה של כל אחד
מהקבצים משתנה. למעשה, זה נעשה על ידי איסוף הקבצים בנקודתיים-
רשימה מופרדת ולאחר מכן הגדרת הפקודה INCLUDE_SERVER_ARGS כמו ב:

include_server_args="--stat_reset_triggers=include/linux/compile.h:include/asm/asm-
offsets.h"

A כותרת פילה is פוטנציאל כלול, אבל עושה לֹא קיימים, ו is אז מאוחר יותר כּוֹלֵל.

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

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

אל האני לכלול שרת יש ל מחושב מה היא לא נכון כולל.
לא ידוע לנו על מצב כזה.

יְצִיאָה קודים


קוד היציאה של include_server.py הוא בדרך כלל 0. ששרת include הופעל
מועבר כראוי באמצעות קיומו של pid_file.

הסביבה וריאציות


DISTCC_EMAILLOG_WHOM_TO_BLAME כתובת הדואר האלקטרוני לשימוש עבור כולל שרת אוטומטי
מיילים. ברירת המחדל היא 'distcc-pump-errors' (שזו כתובת דוא"ל שכנראה תעשה זאת
לא קיים בדומיין שלך).

בנוסף, הפעלת המהדר עשויה להשתמש במשתני סביבה נוספים.

השתמש ב-include_server באופן מקוון באמצעות שירותי onworks.net


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

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

  • 1
    Phaser
    Phaser
    Phaser היא פתיחה מהירה, חינמית ומהנה
    מסגרת משחק מקור HTML5 שמציעה
    עיבוד WebGL ו-Canvas לרוחב
    דפדפני אינטרנט שולחניים וניידים. משחקים
    יכול להיות שותף...
    הורד את Phaser
  • 2
    מנוע VASSAL
    מנוע VASSAL
    VASSAL הוא מנוע משחק ליצירה
    גרסאות אלקטרוניות של לוח מסורתי
    ומשחקי קלפים. זה מספק תמיכה עבור
    עיבוד ואינטראקציה של חלקי משחק,
    ו...
    הורד את VASSAL Engine
  • 3
    OpenPDF - Fork of iText
    OpenPDF - Fork of iText
    OpenPDF היא ספריית Java ליצירה
    ועריכת קבצי PDF עם LGPL ו
    רישיון קוד פתוח MPL. OpenPDF הוא ה
    יורש הקוד הפתוח LGPL/MPL של iText,
    ...
    הורד את OpenPDF - Fork of iText
  • 4
    SAGA GIS
    SAGA GIS
    SAGA - מערכת לאוטומטיות
    ניתוחים גיאוגרפיים - הוא גיאוגרפי
    תוכנת מערכת מידע (GIS) עם
    יכולות עצומות לגיאודטה
    עיבוד ואנה...
    הורד את SAGA GIS
  • 5
    ארגז כלים עבור Java/JTOpen
    ארגז כלים עבור Java/JTOpen
    ארגז הכלים של IBM עבור Java / JTOpen הוא א
    ספריית מחלקות Java התומכות ב
    תכנות לקוח/שרת ואינטרנט
    דגמים למערכת עם OS/400,
    i5/OS, o...
    הורד את ארגז הכלים עבור Java/JTOpen
  • 6
    D3.js
    D3.js
    D3.js (או D3 עבור מסמכים מבוססי נתונים)
    היא ספריית JavaScript המאפשרת לך
    לייצר נתונים דינמיים ואינטראקטיביים
    הדמיות בדפדפני אינטרנט. עם D3
    אתה...
    הורד את D3.js
  • עוד »

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

Ad