dmcs - クラウドでオンライン

これは、Ubuntu Online、Fedora Online、Windows オンライン エミュレーター、または MAC OS オンライン エミュレーターなどの複数の無料オンライン ワークステーションの XNUMX つを使用して、OnWorks 無料ホスティング プロバイダーで実行できるコマンド dmcs です。

プログラム:

NAME


mcs-Mono C#コンパイラ

SYNOPSIS


mcs [オプション] [ソースファイル]

DESCRIPTION


mcsは、ECMA-334言語仕様の実装であるMono C#コンパイラです。
コンパイラを駆動するためのXNUMXつ以上のオプションと、一連のソースファイルを渡すことができます。 追加
オプションまたは引数は、応答ファイルで提供できます。 応答ファイルはによって参照されます
応答ファイル名の前に@記号を付けます。

  mcs コンパイラは、最新のMono Base ClassLibraryバージョンに対してコンパイルするために使用されます。
C#1.0、2.0、3.0、および4.0仕様を完全に実装します。

詳細については、パッケージのセクションを参照してください。

Mono C#コンパイラは、Microsoft C#コンパイラと同じコマンドラインオプションを受け入れます
します。 これらのオプションは、スラッシュまたはダッシュで始めることができます(/ checkedは-checkedと同じです)。
さらに、いくつかのGNUに似たオプションがサポートされており、それらは「-」で始まります。 すべてのMCS固有
Microsoft C#コンパイラで使用できないフラグは、
GNUスタイルのオプション。

C#ソースファイルは、拡張子が「.cs」で終わる必要があります。 C#ソースコードのコンパイルには
コマンドで提供されるライブラリ、モジュール、または実行可能ファイルを構成するすべてのファイル
ライン。 部分的なコンパイルはサポートされていません。 部分的なメリットを実現するには
コンパイル、プログラムを独自のアセンブリにコンパイルし、後で参照する必要があります
「-r」フラグが付いています。

Mono C#コンパイラは、CILバイトコードを含むイメージ(.exeファイル)を生成します。
Common LanguageInfrastructure仮想マシンを実装する任意のシステムによって実行されます
WindowsのMicrosoft.NETランタイムエンジンやUnixのMonoランタイムエンジンなど
システム。 実行可能ファイルは、特定のCPUまたはオペレーティングシステムにバインドされていません。

Mono C#コンパイラは、デフォルトでは、mscorlib.dll、System.dllのXNUMXつのアセンブリのみを参照します。
およびSystem.Xml.dll。 追加のライブラリを参照する場合は、手動で指定する必要があります
-pkg:コマンドラインオプションまたは-r:コマンドラインオプションを使用してそれらを使用します。 あるいは、
すべてのシステムライブラリを取得する場合は、-pkg:dotnetコマンドラインを使用できます
オプションを選択します。

OPTIONS


- 約
Mono C#コンパイラに関する情報を表示します

--addmodule:MODULE1 [、MODULE2]
結果のアセンブリに指定されたモジュールを含めます。 モジュールはによって作成されます
-target:moduleオプションを使用してコンパイラを呼び出す

-チェック済み、 -チェック済み+
デフォルトのコンパイルモードを「チェック済み」に設定します。 これにより、すべての数学演算が実行されます
チェックされています(デフォルトはチェックされていません)。

-チェック済み-
デフォルトのコンパイルモードを「チェックなし」に設定します。 これはすべての数学になります
オフの操作(これがデフォルトです)。

-clscheck-、 -clscheck +
Common Language Specification(CLS)チェックを無効または有効にします(有効になります)
デフォルト)。

Common Language Specification(CLS)は、相互運用可能なタイプのサブセットを次のように定義しています。
コンパイラー(CLSプロデューサー)と開発者が従わなければならない規則も同様です。
コードを他のプログラミング言語(CLSコンシューマー)に公開します。

-コードページ:ID
入力ファイルをその時点から処理するために使用されるコードページを指定します
に指定されています。 デフォルトでは、ファイルは環境に依存して処理されます
ネイティブコードページ。 コンパイラは、次のUnicodeファイルも自動的に検出します。
最初にバイトマークが埋め込まれています。

その他の一般的なエンコーディングは、28591(Latin1)、1252(iso-8859-1)、および65001(UTF-8)です。

MCSは、いくつかの省略形をサポートしています。「utf8」を使用して、代わりにutf-8を指定できます。
不可解な65001と「リセット」を使用すると、コードページの自動処理が復元されます。
これらの省略形は、Microsoftコンパイラでは使用できません。

-define:SYMLIST、 -d:SYMLIST
セミコロンで区切られたリストSYMLISTSYMBOLによってリストされるシンボルを定義します。 この
プリプロセッサによってソースコードでテストすることも、メソッドによって使用することもできます
Conditional属性でタグ付けされているもの。

-デバッグ、 -debug +
デバッグ情報を生成します。 デバッグ情報を含むスタックトレースを取得するには、
`--debug 'フラグを使用してmonoランタイムを呼び出す必要があります。 デバッグ
情報は、生成されたものと同じ出力フォルダーにあるMDBファイルに保存されます
アセンブリ。

-デバッグ-
デバッグ情報を生成しないでください。

-delaysign +
厳密な名前の公開鍵のみをアセンブリに埋め込みます。 実際の署名は
SNツールを使用して後の段階で実行されます。 これは秘密鍵を保護するのに役立ちます
開発中。 遅延署名は、strongnameキーを使用してのみ実行できることに注意してください
ファイル(キーコンテナではありません)。 このオプションは、[アセンブリ:
ソースコードのAssemblyDelaySign(true)]。 コンパイラオプションが優先されます
属性の上に。

-遅延サイン-
ディフォルト。 ストロングネームキーファイルを使用してアセンブリにストロングネーム(署名)(または
容器)。 このオプションは、[アセンブリ:AssemblyDelaySignを含めるのと同じです
(false)]ソースコード内。 コンパイラオプションは属性よりも優先されます。

-doc:FILE
ソースコードからC#/ XMLドキュメントを抽出し、指定された場所に保存します
ファイル。

-エラーレポート
このフラグはMonoのC#コンパイラでは無視され、MCSが
msbuild / xbuildのCSC置換として使用されます。

- 致命的
これは、コンパイラのデバッグに使用されます。 これにより、エラーエミッションが生成されます
デバッガーがキャッチできる例外。

-ファイル整列
このフラグはMonoのC#コンパイラでは無視され、MCSが
msbuild / xbuildのCSC置換として使用されます。

-フルパス
コンパイラによって発行されたソースコードエラーまたは警告には、次のファイル名のみが含まれます。
ディフォルト。 このオプションにより、コンパイラは代わりに絶対ファイルパスを発行します。

-keyfile:KEYFILE
指定されたキーペアに存在するキーペアを使用して、出力アセンブリに厳密な名前(符号)を付けます
厳密な名前のキーファイル(snk)。 デフォルトでは(または使用する場合は、完全なキーペアが必要です)
delaysign-)。 公開鍵のみを含むファイルは、delaysign +で使用できます。 ザ
オプションは、[アセンブリ:AssemblyKeyFile( "KEYFILE")]を
ソースコード。 コンパイラオプションは属性よりも優先されます。

-keycontainer:CONTAINER
指定されたキーペアに存在するキーペアを使用して、出力アセンブリに厳密な名前(符号)を付けます
容器。 キーコンテナを使用する場合、delaysign +は無視されることに注意してください。 オプションは
ソースに[assembly:AssemblyKeyName( "CONTAINER")]を含めるのと同じです
コード。 コンパイラオプションは属性よりも優先されます。

-langversion:TEXT
このオプションは、使用する言語のバージョンを指定します。 機能セットは
C#バージョンごとに異なります。 このスイッチを使用して、コンパイラーに
機能のサブセットのみを許可します。 可能な値は次のとおりです。

デフォルト
最新バージョンを使用するようにコンパイラーに指示します。 同等は、を省略することです
スイッチ(これは現在、デフォルトでC#4.0言語仕様になっています)。

ISO-1 最初のISO標準化機能のみを使用するようにコンパイラーを制限します。 の使用法
ジェネリックス、静的クラス、匿名メソッドなどの機能は、
エラー。

ISO-2 XNUMX番目のISO標準化機能のみを使用するようにコンパイラーを制限します。 この
ジェネリックス、静的クラス、イテレータ、匿名メソッドの使用を許可します
例えば。

3 C#3.0で使用可能な機能のみを使用するようにコンパイラーを制限します(
ISO-1およびISO-2のスーパーセット)。

4 C#4.0で使用可能な機能のみを使用するようにコンパイラーを制限します
仕様。

実験的
言語の今後のバージョンから不安定な機能を有効にします。

このフラグは、使用可能な言語機能のみを制限することに注意してください。
プログラマー。 生成されたアセンブリのバージョンは、次を使用して制御できます。 SDK オプションを選択します。

-lib:PATHLIST
カンマ区切りのリストで指定された各パスは、コンパイラーにルックを指示します
その指定されたパス内のライブラリの場合。

-L パス
指定されたパスでライブラリーを探すようにコンパイラーに指示します。 複数のパス
オプションを複数回使用することで提供できます。

-main:CLASS
どのCLASSにエントリポイントが含まれているかをコンパイラに通知します。 あなたがいるときに便利
Mainメソッドを使用していくつかのクラスをコンパイルします。

-nostdlib、 -nostdlib +
コアライブラリをコンパイルする場合は、このフラグを使用します。 これにより、コンパイラが作成されます
コンパイル中のアセンブリから内部型をロードします。

-noconfig、 -noconfig +
ロードするデフォルトのコンパイラ構成を無効にします。 デフォルトのコンパイラ
システムアセンブリへの参照があります。

-nowarn:WARNLIST
コンパイラーに、コンマ区切りリストで指定された警告を無視させますWARNLIST>

-最適化、 -optimize +、 -最適化-
コードのコンパイラコード生成の最適化を制御します。 -optimizeまたは
-optimize +は最適化をオンにし、-optimize-はオフにします。 のデフォルト
mcsは最適化することです-。 このオプションは-debugと組み合わせることができますが、最高のデバッグのために
オプションをオフのままにしておくことをお勧めします。

-out:FNAME、 -o FNAME
生成する出力ファイルに名前を付けます。

-解析
ベンチマークに使用されます。 コンパイラは、入力ファイルのみを解析します。

-pkg:package1 [、packageN]
指定されたパッケージの参照アセンブリ。

コンパイラは、で指定されたパッケージのセットに対してpkg-config--libsを呼び出します。
コードをコンパイルするためのライブラリとディレクトリを取得するためのコマンドライン。

これは通常、次のようなサードパーティコンポーネントで使用されます。

$ mcs -pkg:gtk-sharp demo.cs

-pkg:dotnet
これにより、System。*ライブラリを参照するようにコンパイラに指示されます。
一般的なドットネットフレームワークのインストールで利用可能ですが、これは
すべてのMonoライブラリを含めるのではなく、System。*ライブラリのみを含めます。 これは
それらの移植コードのための便利なショートカット。

-プラットフォーム:ARCH
ターゲットプラットフォームを指定するために使用されます。 可能な値は次のとおりです。anycpu、
anycpu32bitpreferred、arm、x86、x64、またはitanium。 デフォルトのオプションはanycpuです。

-resource:RESOURCE [、ID]
指定されたリソースファイルに埋め込みます。 オプションのIDを使用して、別のIDを与えることができます
リソースの名前。 指定しない場合、リソース名はファイル名になります。

-linkresource:RESOURCE [、ID]
指定されたリソースへのリンク。 オプションのIDを使用して、に名前を付けることができます。
リンクされたリソース。

-r:ASSEMBLY1 [、ASSEMBLY2]、 -参照 ASSEMBLY1 [、ASSEMBLY2]
名前付きアセンブリを参照します。 これを使用して、で指定されたアセンブリのクラスを使用します
あなたのプログラム。 アセンブリは、システムディレクトリからロードされます。
すべてのアセンブリがライブであるか、-Lオプションで明示的に指定されたパスから。

カンマの代わりにセミコロンを使用してアセンブリを区切ることもできます。

-参照:ALIAS = ASSEMBLY
C#の外部エイリアス参照サポート。

同じタイプを提供する異なるアセンブリがある場合、externエイリアス
サポートにより、ソフトウェアがそれらを伝えるために使用できる名前を提供できます
appart。 ASSEMBLYの型は、ALIASとして公開され、次にC#ソースで公開されます。
コード、あなたはする必要があります:

externエイリアスALIAS;
それを名前空間に持ち込むため。 たとえば、XNUMXつのグラフィックライブラリに対応するため
「Graphics.Point」を定義し、XNUMXつは「OpenGL.dll」に、もうXNUMXつは「Postscript.dll」に定義します。
次のようにコンパイラを呼び出します。

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

そして、ソースコードに次のように記述します。

externエイリアスPostscript;
externエイリアスOpenGL;

クラスX {
//これはPostscrip.dllのGraphics.Pointです
Postscript.Point p = new Postscript.Point();

//これはOpenGL.dllのGraphics.Pointです
OpenGL.Point p = new OpenGL.Point();
}

-recurse:PATTERN、 -再帰 パターン
指定されたパターンを使用して再帰的にコンパイルします。 Unixでは、シェルは
グロブを実行するので、次のように使用することをお勧めします。

$ mcs -recurse: '* .cs'

-sdk:VERSION
コンパイルに使用される基本クラスライブラリアセンブリのバージョンを指定するために使用されます。
次の事前定義された値が有効です:2、4(デフォルト)および任意のカスタム値。
事前定義されたバージョン番号は、どのカスタム値が指定されているかを意味しますmcsは
モノインストール場所PREFIX / lib / mono /で基本クラスライブラリを検索します。

- シェル
コンパイラをインタラクティブモードで起動し、ステートメントとステートメントにC#シェルを提供します。
式。 ショートカットは、 Cシャープ 直接コマンド。

- スタックトレース
エラーが報告されたときにスタックトレースを生成します。これは、デバッグに役立ちます。
コンパイラ。

-ターゲット:KIND、 -t:KIND
目的のターゲットを指定するために使用されます。 可能な値は次のとおりです。exe(プレーン
実行可能ファイル)、winexe(Windows.Forms実行可能ファイル)、ライブラリ(コンポーネントライブラリ)、および
モジュール(部分ライブラリ)。

-タイムスタンプ
別のデバッグフラグ。 のさまざまなポイントで時間を表示するために使用されます
コンパイルプロセス。

-安全ではない、 -安全ではない+
安全でないコードのコンパイルを有効にします。

-v デバッグ。 詳細なyacc解析をオンにします。

- バージョン
コンパイラのバージョンを表示します。

-warnaserror、 -warnaserror +
すべてのコンパイラの警告はエラーとして報告されます。

-warnaserror:W1、[Wn]、 -warnaserror +:W1、[Wn]
XNUMXつ以上のコンパイラ警告をエラーとして扱います。

-warnaserror-:W1、[Wn]
XNUMXつ以上のコンパイラ警告を常に警告として脅かされるように設定します。 になる
-warnaserrorと一緒に使用すると便利です。

-警告:LEVEL
警告レベルを設定します。 0が最低の警告レベルで、4が最高です。 The
デフォルトは4です。

-win32res:FILE
結果のアセンブリにバンドルされるWin32リソースファイル(.res)を指定します。

-win32icon:FILE
出力のFILEで指定されたアイコンを結果のアセンブリに添付します。

-- これを使用して、オプションの解析を停止し、オプションのように見えるパラメーターを渡すことができます
コマンドラインで。

PACKAGES そして ライブラリ


アセンブリを参照するときに、アセンブリの名前がパスの場合、コンパイラは試行します
パスで指定されたアセンブリをロードします。 そうでない場合、コンパイラは試行します
現在のディレクトリ、コンパイラのベースディレクトリ、および
アセンブリは、への引数として指定されたディレクトリ内のこれらの場所のいずれにも見つかりません
-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に関連してインストールされたソフトウェアを配布します
ディレクトリ。 これはに統合されています ガクチル パブリックをインストールするだけでなくツール
アセンブリをグローバルアセンブリキャッシュ(GAC)にインストールするだけでなく、
PACKAGEBASE / PKGディレクトリ(ここで、PKGはgacutilに-packageフラグに渡される名前です)。

開発者として、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 定義は、コンパイラーにとって特別な意味を持ちます。

デフォルトでは、System.Diagnostics.Traceクラスのメソッドとプロパティの呼び出しは
TRACEシンボルが(「#defineTRACE」を介して)定義されていない限り、生成されます。
ソースコード、または - 定義 TRACE コマンドラインで。

デフォルトでは、System.Diagnostics.Debugクラスのメソッドとプロパティの呼び出しは
DEBUGシンボルが(「#defineDEBUG」を介して)定義されていない限り、生成されます。
ソースコード、または - 定義 DEBUG コマンドラインで。

TRACEとDEBUGを定義すると、グローバル設定であっても、グローバル設定になることに注意してください。
単一のファイルでのみ定義されます。

デバッグ サポート


「-debug」フラグを使用すると、MCSは拡張子が.mdbのファイルを生成します。
生成されたアセンブリのデバッグ情報が含まれています。 このファイルはによって消費されます
モノデバッガー(mdb)。

ENVIRONMENT 変数


MCS_COLORS
この変数が設定されている場合、「foreground、background」の形式の文字列が含まれます
これは、一部の端末でエラーを表示するために使用する色を指定します。

背景はオプションであり、デフォルトでは端末の現在の背景になります。 The
前景に使用できる色は次のとおりです。 黒、 赤、 真っ赤、 緑、 明るい緑色、
黄、 ブライトイエロー、 ブルー、ブライトブルー、マゼンタ、ブライトマゼンタ、シアン、ブライトシアン、
グレー、ホワイト、ブライトホワイト。

背景に使用できる色は、黒、赤、緑、黄、青、マゼンタ、
シアン、グレー、白。

たとえば、シェルから次の変数を設定できます。
MCS_COLORSをエクスポートします
MCS_COLORS = errors = brightwhite、red

この変数を「無効」に設定すると、組み込みの配色を無効にできます。

注意事項


コンパイル中に、MCSコンパイラは__MonoCS__シンボルを定義します。これは、次のユーザーが使用できます。
Mono C#コンパイラ固有のコードをコンパイルするためのプリプロセッサ命令。 その点に注意してください
この記号はコンパイラをテストするためだけのものであり、コンパイルを区別するのに役立ちません
または展開プラットフォーム。

作者


Mono C#コンパイラは、Miguel de Icaza、Ravi Pratap、Martin Baulig、Marekによって作成されました。
SafarとRajaHarinath。 開発はXimian、Novell、MarekSafarによって資金提供されました。

onworks.net サービスを使用してオンラインで dmcs を使用する



最新のLinuxおよびWindowsオンラインプログラム