dmcs - מקוון בענן

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

תָכְנִית:

שֵׁם


mcs - מהדר מונו C#

תַקצִיר


Mcs [אופציה] [קבצי מקור]

תיאור


mcs הוא מהדר Mono C#, יישום של מפרט השפה ECMA-334.
אתה יכול להעביר אפשרות אחת או יותר להנעת המהדר, וכן קבוצה של קבצי מקור. תוֹסֶפֶת
ניתן לספק אפשרויות או ארגומנטים בקובץ תגובה. קבצי תגובות מופנים על ידי
הוספת הסמל @ לשם קובץ התגובה.

השמיים Mcs המהדר משמש לקומפילציה מול הגרסה העדכנית ביותר של Mono Base Class Library ו
מיישם באופן מלא את מפרטי C# 1.0, 2.0, 3.0 ו-4.0.

עיין בסעיף על חבילות למידע נוסף.

המהדר Mono C# מקבל את אותן אפשרויות שורת הפקודה שבהן המהדר של Microsoft C#
עושה. האפשרויות הללו יכולות להתחיל עם קו נטוי או מקף (/checked זהה ל-checked).
בנוסף, חלק מהאפשרויות דמויות GNU נתמכות, אלו מתחילות ב-"--". הכל ספציפי ל-MCS
דגלים שאינם זמינים במהדר Microsoft C# זמינים רק עם
אפשרויות בסגנון גנו.

קבצי מקור C# חייבים להסתיים בסיומת ".cs". הידור של קוד המקור C# דורש
כל הקבצים המרכיבים ספרייה, מודול או קובץ הפעלה שיסופקו בפקודה
קַו. אין תמיכה בקומפילציה חלקית. כדי להשיג את היתרונות של חלקית
קומפילציה, עליך לקמפל תוכניות למכלולים משלהן, ולהתייחס מאוחר יותר
אותם עם הדגל "-r".

המהדר Mono C# יוצר תמונות (קבצי.exe) המכילות קוד בייט CIL שיכול להיות
מבוצע על ידי כל מערכת המיישמת מכונה וירטואלית של תשתית שפה משותפת
כגון מנוע זמן הריצה של Microsoft .NET ב-Windows או מנוע זמן הריצה מונו ב-Unix
מערכות. קובצי הפעלה אינם קשורים למעבד או למערכת הפעלה ספציפיים.

מהדר Mono C# כברירת מחדל מתייחס רק לשלושה מכלולים: mscorlib.dll, System.dll
ו-System.Xml.dll. אם ברצונך להתייחס לספריות נוספות, עליך לציין באופן ידני
אותם באמצעות אפשרות שורת הפקודה -pkg: או אפשרות שורת הפקודה -r:. לחילופין אם
ברצונך לקבל את כל ספריות המערכת, תוכל להשתמש בשורת הפקודה -pkg:dotnet
אוֹפְּצִיָה.

אפשרויות


--על אודות
מציג מידע על המהדר Mono C#

--addmodule:MODULE1[,MODULE2]
כולל את המודולים שצוינו בהרכבה המתקבלת. מודולים נוצרים על ידי
קורא למהדר עם אפשרות -target:module

-בָּדוּק, -מסומן+
מגדיר את מצב ההידור המוגדר כברירת מחדל ל'מסומן'. זה עושה את כל פעולות המתמטיקה
מסומן (ברירת המחדל אינה מסומנת).

-בָּדוּק-
מגדיר את ברירת המחדל של מצב הידור ל'לא מסומן'. זה עושה את כל המתמטיקה
פעולות לא מסומנות (זוהי ברירת המחדל).

-clscheck-, -clscheck+
משבית או מפעיל את בדיקות מפרט השפה הנפוצה (CLS) (הוא מופעל
כברירת מחדל).

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

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

קידודים פופולריים נוספים הם 28591 (Latin1), 1252 (iso-8859-1) ו-65001 (UTF-8).

MCS תומך בכמה קיצורים: "utf8" יכול לשמש כדי לציין utf-8 במקום
שימוש ב-65001 הקריפטי ו"איפוס" משחזר את הטיפול האוטומטי בדפי קוד.
קיצורים אלה אינם זמינים במהדר של Microsoft.

-define:SYMLIST, -d:SYMLIST
מגדיר את הסמל הרשום ברשימה המופרדת בנקודה-פסיק SYMLIST SYMBOL. זֶה
ניתן לבדוק בקוד המקור על ידי המעבד המוקדם, או להשתמש בשיטות
שתויגו עם התכונה Conditional.

-לנפות, -debug+
צור מידע על ניפוי באגים. כדי להשיג עקבות מחסנית עם מידע על ניפוי באגים,
אתה צריך להפעיל את זמן הריצה המונו עם הדגל `--debug'. איתור הבאגים
המידע מאוחסן בקובץ MDB שנמצא באותה תיקיית פלט כפי שהופקה
הרכבה.

-לנפות-
אל תיצור מידע על ניפוי באגים.

-דיlaysign+
הטמע רק את המפתח הציבורי החזק בהרכבה. החתימה בפועל חייבת להיות
נעשה בשלב מאוחר יותר באמצעות הכלי SN. זה שימושי כדי להגן על המפתח הפרטי
במהלך הפיתוח. שימו לב שניתן לבצע חתימה בהשהיה רק ​​באמצעות מפתח חזק שם
קובץ (לא מיכל מפתח). האפשרות שווה לכלול [הרכבה:
AssemblyDelaySign (true)] בקוד המקור שלך. אפשרות המהדר עדיפה
על התכונות.

-סימן עיכוב-
בְּרִירַת מֶחדָל. Strongname (חתום) את המכלול באמצעות קובץ מפתח השם חזק (או
מְכוֹלָה). האפשרות שווה לכלול [הרכבה: AssemblyDelaySign
(false)] בקוד המקור שלך. אפשרות המהדר עדיפה על התכונות.

-doc:FILE
מחלץ את תיעוד C#/XML מקוד המקור ומאחסן בנתון
קוֹבֶץ.

-דו"ח שגיאה
מדגל זה מתעלם על ידי מהדר C# של Mono והוא קיים רק כדי לאפשר ל-MCS להיות
משמש כתחליף CSC עבור msbuild/xbuild.

--קָטלָנִי
זה משמש לאיתור באגים במהדר. זה גורם לפליטת השגיאה ליצור an
חריג שיכול להיתפס על ידי מאתר באגים.

-ליישר קבצים
מדגל זה מתעלם על ידי מהדר C# של Mono והוא קיים רק כדי לאפשר ל-MCS להיות
משמש כתחליף CSC עבור msbuild/xbuild.

-שבילים מלאים
כל שגיאת קוד מקור או אזהרה שהונפקה על ידי המהדר כוללת את שם הקובץ רק על ידי
בְּרִירַת מֶחדָל. אפשרות זו גורמת למהדר להנפיק נתיב קובץ מוחלט במקום זאת.

-keyfile:KEYFILE
Strongname (סימן) למכלול הפלט באמצעות צמד המפתחות הקיים במפרט שצוין
קובץ מפתח שם חזק (snk). זוג מפתחות מלא נדרש כברירת מחדל (או בעת שימוש
Delaysign-). ניתן להשתמש בקובץ המכיל רק את המפתח הציבורי עם delaysign+. ה
אפשרות שווה לכלול [assembly: AssemblyKeyFile ("KEYFILE")] בקובץ שלך
קוד מקור. אפשרות המהדר עדיפה על התכונות.

-מכל מפתח:CONTAINER
Strongname (סימן) למכלול הפלט באמצעות צמד המפתחות הקיים במפרט שצוין
מְכוֹלָה. שימו לב שמתעלמים מה-delaysign+ בעת שימוש במכולות מפתח. האפשרות היא
שווה ערך לכלול [assembly: AssemblyKeyName ("CONTAINER")] במקור שלך
קוד. אפשרות המהדר עדיפה על התכונות.

-langversion:TEXT
האפשרות מציינת את גרסת השפה שבה יש להשתמש. ערכת התכונות היא
שונה בכל גרסת C#. ניתן להשתמש בבורר זה כדי לאלץ את המהדר לעשות זאת
אפשר רק תת-קבוצה של התכונות. הערכים האפשריים הם:

בְּרִירַת מֶחדָל
הוראה למהדר להשתמש בגרסה העדכנית ביותר. שווה ערך הוא להשמיט את
switch (זה כרגע ברירת המחדל למפרט שפת C# 4.0).

ISO-1 הגבל מהדר להשתמש רק בתכונות הסטנדרטיות הראשונות של ISO. השימוש ב
תכונות כגון גנריות, מחלקות סטטיות, שיטות אנונימיות יובילו
שגיאה.

ISO-2 הגבל מהדר להשתמש רק בתכונות הסטנדרטיות השניות של ISO. זֶה
מאפשר שימוש בגנריות, מחלקות סטטיות, איטרטורים ושיטות אנונימיות
למשל.

3 הגבל את המהדר להשתמש רק בתכונות הזמינות ב-C# 3.0 (א
ערכת-על של ISO-1 ו-ISO-2).

4 הגבל את המהדר להשתמש רק בתכונות הזמינות ב-C# 4.0
מפרט.

ניסיוני
מאפשר תכונות לא יציבות מגרסאות קרובות של השפה.

שימו לב שדגל זה מגביל רק את תכונות השפה הזמינות ל
מְתַכנֵת. ניתן לשלוט בגרסה של מכלולים שיוצרו באמצעות SDK אוֹפְּצִיָה.

-lib:PATHLIST
כל נתיב שצוין ברשימה המופרדת בפסיק יפנה את המהדר לחפש
עבור ספריות בנתיב שצוין.

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

-ראשי:CLASS
אומר למהדר איזה CLASS מכיל את נקודת הכניסה. שימושי כשאתה
קומפילציה של מספר מחלקות בשיטת Main.

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

-noconfig, -noconfig+
משבית את תצורת ברירת המחדל לטעינה. המהדר כברירת מחדל
יש הפניות למכלולי המערכת.

-nowarn:WARNLIST
גורם למהדר להתעלם מהאזהרות שצוינו ברשימה המופרדת בפסיקים WARNLIST>

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

-out:FNAME, -o FNAME
נותן שם לקובץ הפלט שייווצר.

--לְנַתֵחַ
משמש להשוואה. המהדר ינתח רק את קבצי הקלט שלו.

-pkg:package1[,packageN]
מכלולי ייחוס עבור החבילות הנתונות.

המהדר יפעיל את pkg-config --libs על קבוצת החבילות המצוינת ב-
שורת פקודה להשגת ספריות וספריות להידור הקוד.

זה משמש בדרך כלל עם רכיבי צד שלישי, כמו זה:

$ mcs -pkg:gtk-sharp demo.cs

-pkg:dotnet
זה ינחה את המהדר להפנות לספריות System.*
זמין בהתקנה טיפוסית של dotnet framework, שימו לב שזה כן
לא כולל את כל ספריות המונו, רק את אלו של System.*. זה
קיצור דרך נוח לאלה המעבירים קוד.

-פלטפורמה:ARCH
משמש לציון פלטפורמת היעד. הערכים האפשריים הם: anycpu,
anycpu32bitpreferred, arm, x86, x64 או itanium. אפשרות ברירת המחדל היא anycpu.

-משאב:משאב[,מזהה]
מוטמע בקובץ המשאבים הנתון. ניתן להשתמש במזהה האופציונלי כדי לתת שונה
שם למשאב. אם לא צוין, שם המשאב יהיה שם הקובץ.

-linkresource:RESOURCE[,ID]
קישורים ל-RESOURCE שצוין. ניתן להשתמש במזהה האופציונלי כדי לתת שם ל-
משאב מקושר.

-r:ASSEMBLY1[,ASSEMBLY2], -התייחסות ASSEMBLY1[,ASSEMBLY2]
עיין במכלולים הנקובים בשמות. השתמש בזה כדי להשתמש במחלקות מהאסיפה בעלת השם ב
התוכנית שלך. ההרכבה תיטען מספריית המערכת שבה
כל המכלולים חיים, או מהנתיב שניתן במפורש עם אפשרות -L.

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

-reference:ALIAS=ASSEMBLY
תמיכה בכינויים חיצוניים עבור C#.

אם יש לך מכלולים שונים המספקים את אותם סוגים, הכינוי החיצוני
התמיכה מאפשרת לך לספק שמות שהתוכנה שלך יכולה להשתמש בהם כדי לספר אותם
דירה. הסוגים מ- ASSEMBLY יחשפו כ-ALIAS, ולאחר מכן במקור C#
קוד, אתה צריך לעשות:

כינוי חיצוני alias;
כדי להכניס אותו למרחב השמות שלך. לדוגמה, כדי להתמודד עם שתי ספריות גרפיקה
שמגדירים "Graphics.Point", אחד ב-"OpenGL.dll" ואחד ב-"Postscript.dll", אתה
יפעיל את המהדר כך:

mcs -r:Postscript=Postscript.dll -r:OpenGL=OpenGL.dll

ובקוד המקור שלך, היית כותב:

כינוי חיצוני Postscript;
כינוי חיצוני OpenGL;

מחלקה X {
// זוהי Graphics.Point מ-Postscrip.dll
Postscript.Point p = new Postscript.Point ();

// זוהי Graphics.Point מ-OpenGL.dll
OpenGL.Point p = חדש OpenGL.Point ();
}

-recurse:PATTERN, --שחזור תַבְנִית
מבצע קומפילציה רקורסיבית באמצעות הדפוס שצוין. ביוניקס הקליפה תהיה
בצע globbing, אז אולי תרצה להשתמש בו כך:

$ mcs -recurse:'*.cs'

-sdk:גרסה
משמש לציון הגרסה של הרכבות Base Class Library המשמשות להידור.
הערכים הבאים שהוגדרו מראש תקפים: 2, 4 (ברירת מחדל) וכן כל ערך מותאם אישית.
מספר הגרסה המוגדר מראש אומר לאיזה ערך מותאם אישית צוין mcs ינסה
מצא ספריות כיתות בסיס במיקום המותקן מונו PREFIX/lib/mono/ .

-
מפעיל את המהדר במצב אינטראקטיבי, מספק מעטפת C# להצהרות ו
ביטויים. קיצור דרך הוא להשתמש ב- צארפ פקודה ישירות.

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

-יעד:KIND, -ט: חביב
משמש לציון היעד הרצוי. הערכים האפשריים הם: exe (רגיל
קובץ הפעלה), winexe (קובץ הפעלה של Windows.Forms), ספרייה (ספריות רכיבים) ו
מודול (ספרייה חלקית).

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

-מְסוּכָּן, -לא בטוח+
מאפשר קומפילציה של קוד לא בטוח.

-v איתור באגים. מפעיל ניתוח yacc מילולי.

--גִרְסָה
מציג את גרסת המהדר.

-warnaserror, -warnaserror+
כל אזהרות המהדרים ידווחו כשגיאות.

-warnaserror:W1,[Wn], -warnaserror+:W1,[Wn]
מתייחס לאזהרת קומפיילר אחת או יותר כשגיאות.

-warnaserror-:W1,[Wn]
מגדיר אזהרת מהדר אחת או יותר להיות מאוימת תמיד בתור אזהרות. הופך
שימושי בשימוש יחד עם -warnaserror.

אזהרה: LEVEL
מגדיר את רמת האזהרה. 0 היא רמת האזהרה הנמוכה ביותר, ו-4 היא הגבוהה ביותר. ה
ברירת המחדל היא 4.

-win32res:FILE
מציין קובץ משאב Win32 (.res) שיש לאגד במכלול המתקבל.

-win32icon:FILE
מצרף את הסמל שצוין ב-FILE על הפלט לתוך המכלול המתקבל.

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

זיווד ו ספריות


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

המהדר משתמש בנתיב הספרייה כדי לאתר ספריות, והוא מסוגל להפנות לספריות
מחבילה מסוימת אם נעשה שימוש בספרייה זו. כדי לפשט את השימוש בחבילות, ה
מהדר C# כולל את אפשרות שורת הפקודה -pkg: המשמשת לטעינה ספציפית
אוספי ספריות.

ספריות הנראות לקומפיילר מאוחסנות ביחס לקידומת ההתקנה תחת
PREFIX/lib/mono/ נקרא PACKAGEBASE וברירות המחדל עבור mcs, gmcs ו- smcs הן כמו
התעופה

Mcs מפנה לספריית PACKAGEBASE/1.0

gmcs מפנה לספריית PACKAGEBASE/2.0

smcs מפנה לספריית PACKAGEBASE/2.1

אלו פרופילי זמן הריצה היחידים שקיימים. למרות שקיימות ספריות אחרות (כמו
3.0 ו-3.5) אלו לא באמת פרופילי זמן ריצה, הם רק מצייני מיקום לתוספת
ספריות שנבנות על בסיס 2.0.

ספקי תוכנה יפיצו תוכנה שמותקנת ביחס ל-PACKAGEBASE
מַדרִיך. זה משולב ב- גאקוטיל כלי שלא רק מתקין ציבורי
הרכבות ל-Global Assembly Cache (GAC) אך גם מתקין אותם ב-
ספריית PACKAGEBASE/PKG (כאשר PKG הוא השם המועבר לדגל -package ל-gacutil).

כמפתח, אם אתה רוצה לצרוך את ספריות Gtk#, תפעיל את המהדר
ככה:

$ mcs -pkg:gtk-sharp-2.0 main.cs

האפשרות -pkg: מורה למהדר להביא את ההגדרות עבור gtk-sharp-2.0 מ-
pkg-config, זה שווה ערך להעברת לקומפיילר C# את הפלט של:

$ pkg-config --libs gtk-sharp-2.0

בדרך כלל זה רק מתייחס לספריות מ-PACKAGEBASE/PKG.

למרות שיש שמות ספריות עבור 3.0 ו-3.5, זה לא אומר שיש 3.0
ו-3.5 מהדורות מהדר או פרופילים. אלה רק ספריות חדשות שחייבות להיות
הפניה ידנית עם הפקת -pkg: הנכונה, או על ידי הפניה של
ספריות ישירות.

מיוחד מגדיר


השמיים TRACE ו DEBUG ל-defines יש משמעות מיוחדת למהדר.

כברירת מחדל, קריאות לשיטות ומאפיינים במחלקה System.Diagnostics.Trace אינן
נוצר אלא אם כן הסמל TRACE מוגדר (באמצעות "#define TRACE") בקובץ שלך
קוד המקור, או באמצעות ה- --לְהַגדִיר TRACE בשורת הפקודה.

כברירת מחדל, קריאות לשיטות ומאפיינים במחלקה System.Diagnostics.Debug אינן
נוצר אלא אם כן סמל DEBUG מוגדר (או באמצעות "#define DEBUG") ב-
קוד המקור, או באמצעות ה- --לְהַגדִיר DEBUG בשורת הפקודה.

שימו לב שההשפעה של הגדרת TRACE ו-DEBUG היא הגדרה גלובלית, גם אם כן
מוגדר רק בקובץ בודד.

פיתרון תמיכה


בעת שימוש בדגל "-debug", MCS יפיק קובץ עם הסיומת .mdb that
מכיל את מידע ניפוי הבאגים עבור המכלול שנוצר. קובץ זה נצרך על ידי
מאתר באגים מונו (mdb).

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


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

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

הצבעים האפשריים לרקע הם: שחור, אדום, ירוק, צהוב, כחול, מגנטה,
ציאן, אפור ולבן.

לדוגמה, אתה יכול להגדיר את המשתנים האלה מהמעטפת שלך:
ייצא MCS_COLORS
MCS_COLORS=שגיאות=לבן בהיר,אדום

אתה יכול להשבית את ערכת הצבעים המובנית על ידי הגדרת משתנה זה ל"נטרול".

אורים


במהלך ההידור, מהדר MCS מגדיר את הסמל __MonoCS__, ניתן להשתמש בו על ידי
הוראות קדם-מעבד להדר קוד ספציפי של Mono C#. שים לב ש
סמל זה מיועד רק לבדיקת המהדר, ואינו שימושי להבחין בהידור
או פלטפורמות פריסה.

מחברים


המהדר של Mono C# נכתב על ידי מיגל דה איקאזה, ראווי פראטאפ, מרטין באוליג, מרק
סאפאר וראג'ה הרינאת. הפיתוח מומן על ידי Ximian, Novell ו-Marek Safar.

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



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