X-Git-Url: http://wien.tomnetworks.com/gitweb/?a=blobdiff_plain;f=man%2Fmcs.1;h=14221a83c1020153fa696e6313ccc290d45c6cd8;hb=45a6bc149df2618dc0f31c4cce8f56dd5efed7f6;hp=1c822b76a6ea216d6b6a822e44ad53ff041e09b1;hpb=c06190ff9f3e41c17e92b622a40cc1750cd6fc25;p=mono.git diff --git a/man/mcs.1 b/man/mcs.1 index 1c822b76a6e..14221a83c10 100644 --- a/man/mcs.1 +++ b/man/mcs.1 @@ -4,7 +4,7 @@ .. .TH mcs 1 "6 January 2001" .SH NAME -mcs, gmcs, smcs \- Mono C# Compiler (1.0, 2.0, Moonlight) +mcs \- Mono C# Compiler .SH SYNOPSIS .B mcs [option] [source-files] @@ -17,23 +17,8 @@ prepending the @ symbol to the response file name. .PP The .I mcs -compiler is used to compile against the 1.x profile and implements -C# 1.0 and 2.0 with the exception of generics and nullable types. -.PP -The -.I gmcs -compiler is used to compile against the 2.0 profile and implements -the complete C# 2.0 specification including generics. -.PP -The -.I smcs -compiler is used to compile against the Silverlight/Moonlight profile. -This profile is designed to be used for creating Silverlight/Moonlight -applications that will run on a web browser. The API exposed by this -profile is a small subset of the 3.5 API (even if it is commonly -referred as the 2.1 API, this API is a small subset of 2.0 with a few -extensions), in addition this profile by default runs with --langversion:linq which turns on the C# 3.0 language by default. +compiler is used to compile against the latest Mono Base Class Library +version and fully implements C# 1.0, 2.0, 3.0 and 4.0 specifications. .PP See the section on packages for more information. .PP @@ -108,11 +93,11 @@ SYMBOL. This can be tested in the source code by the pre-processor, or can be used by methods that have been tagged with the Conditional attribute. .TP -.I \-debug, \-debug+, \-g -Generate debugging information. To obtain stack traces with debugging +.I \-debug, \-debug+ +Generate debugging information. To obtain stack traces with debugging information, you need to invoke the mono runtime with the `--debug' -flag. This debugging information is stored inside the assembly as a -resource. +flag. The debugging information is stored in a MDB file located in +same output folder as produced assembly. .TP .I \-debug- Do not generate debugging information. @@ -136,14 +121,23 @@ precedence over the attributes. Extracts the C#/XML documentation from the source code and stores in in the given FILE. .TP -.I \-\-expect-error X L -The compiler will expect the code to generate an error -named `X' in line `L'. This is only used by the test suite. -.TP +.I \-errorreport +This flag is ignored by Mono's C# compiler and is present only to +allow MCS to be used as a CSC replacement for msbuild/xbuild. +.TP .I \-\-fatal This is used for debugging the compiler. This makes the error emission generate an exception that can be caught by a debugger. .TP +.I \-filealign +This flag is ignored by Mono's C# compiler and is present only to +allow MCS to be used as a CSC replacement for msbuild/xbuild. +.TP +.I \-fullpaths +Any source code error or warning issued by the compiler includes file +name only by default. This option causes compiler to issue absolute file +path instead. +.TP .I \-keyfile:KEYFILE Strongname (sign) the output assembly using the key pair present in the specified strong name key file (snk). A full key pair is required @@ -169,7 +163,7 @@ The possible values are: .TP .I "Default" Instruct compiler to use the latest version. Equivalent is to omit the -switch (this currently defaults to the C# 2.0 language specification). +switch (this currently defaults to the C# 4.0 language specification). .TP .I "ISO-1" Restrict compiler to use only first ISO standardized features. @@ -181,15 +175,21 @@ Restrict compiler to use only the second ISO standardized features. This allows the use of generics, static classes, iterators and anonymous methods for example. .TP -.I "linq" -This enables the C# 3.0 support. Only a few features of C# 3.0 have -been implemented in the Mono C# compiler, so not everything is -available. +.I "3" +Restrict the compiler to use only the features available in C# 3.0 +(a superset of ISO-1 and ISO-2). +.TP +.I "4" +Restrict the compiler to use only the features available in C# 4.0 +specification. +.TP +.I "future" +Enables unstable features from upcoming versions of the language. .PP -Notice that this flag only controls the language features available to -the programmer, it does not control the kind of assemblies produced. -Programs compiled with mcs will reference the 1.1 APIs, Programs -compiled with gmcs reference the 2.0 APIs. +Notice that this flag only restricts the language features available to +the programmer. A version of produced assemblies can be controled using +.I SDK +option. .ne .RE .TP @@ -218,9 +218,10 @@ Makes the compiler ignore warnings specified in the comma-separated list WARNLIST> .TP .I -optimize, -optimize+, -optimize- -Controls whether to perform optimizations on the code. -optimize and +Controls compiler code generation optimizations on the code. Using -optimize or -optimize+ will turn on optimizations, -optimize- will turn it off. -The default in mcs is to optimize+. +The default in mcs is to optimize-. The option can be mixed with -debug +but for the best debugging experience it is recommended leave the options off. .TP .I -out:FNAME, -o FNAME Names the output file to be generated. @@ -255,11 +256,7 @@ libraries). .TP .I \-pkg:silver References the assemblies for creating Moonlight/Silverlight -applications. This is automatically used when using the -.I smcs -compiler, but it is here when developers want to use it with the -.I gmcs -compiler. +applications. .TP .I \-pkg:silverdesktop Use this option to create Moonlight/Silverlight applications that @@ -278,6 +275,11 @@ For more details see the PACKAGE section in this document .ne .RE .TP +.I \-platform:ARCH +Used to specify the target platform. The possible values are: anycpu, +anycpu32bitpreferred, arm, x86, x64 or itanium. The default option is +anycpu. +.TP .I -resource:RESOURCE[,ID] Embeds to the given resource file. The optional ID can be used to give a different name to the resource. If not specified, the resource @@ -339,6 +341,20 @@ shell will perform globbing, so you might want to use it like this: $ mcs -recurse:'*.cs' .fi .TP +.I \-sdk:VERSION +Used to specify the version of Base Class Library assemblies used for +compilation. Following predefined values are valid: 2, 4 (default) as +well as any custom value. The predefined version number means which +.NET version should the produced assembly be compatible with. When +custom value is specified mcs will try to find Base Class Libraries +in the mono installed location PREFIX/lib/mono/. +.TP +.I \-\-shell +Starts up the compiler in interactive mode, providing a C# shell for +statements and expressions. A shortcut is to use the +.I csharp +command directly. +.TP .I \-\-stacktrace Generates a stack trace at the time the error is reported, useful for debugging the compiler. @@ -358,18 +374,22 @@ Enables compilation of unsafe code. .I \-v Debugging. Turns on verbose yacc parsing. .TP -.I \-v2 -Turns on C# 2.0 language features. -.TP .I \-\-version Shows the compiler version. .TP .I \-warnaserror, \-warnaserror+ -Treat warnings as errors. +All compilers warnings will be reported as errors. +.TP +.I \-warnaserror:W1,[Wn], -warnaserror+:W1,[Wn] +Treats one or more compiler warnings as errors. +.TP +.I \-warnaserror-:W1,[Wn] +Sets one or more compiler warnings to be always threated as warnings. +Becomes useful when used together with -warnaserror. .TP .I \-warn:LEVEL Sets the warning level. 0 is the lowest warning level, and 4 is the -highest. The default is 2. +highest. The default is 4. .TP .I \-win32res:FILE Specifies a Win32 resource file (.res) to be bundled into the @@ -383,10 +403,13 @@ assembly. Use this to stop option parsing, and allow option-looking parameters to be passed on the command line. .PP -.SH PACKAGES -Depending on the invocation for the C# compiler (mcs, gmcs, or smcs) -you will get a default set of libraries and versions of those -libraries that are referenced. +.SH PACKAGES AND LIBRARIES +When referencing an assembly, if the name of the assembly is a path, +the compiler will try to load the assembly specified in the path. If +it does not, then the compiler will try loading the assembly from the +current directory, the compiler base directory and if the assembly is +not found in any of those places in the directories specified as +arguments to the -lib: command argument. .PP The compiler uses the library path to locate libraries, and is able to reference libraries from a particular package if that directory is @@ -505,23 +528,23 @@ Martin Baulig, Marek Safar and Raja Harinath. The development was funded by Ximian, Novell and Marek Safar. .PP .SH LICENSE -The Mono Compiler Suite is released under the terms of the GNU GPL. -Please read the accompanying `COPYING' file for details. Alternative -licensing for the compiler is available from Novell. +The Mono Compiler Suite is released under the terms of the GNU GPL or +the MIT X11. Please read the accompanying `COPYING' file for details. +Alternative licensing for the compiler is available from Xamarin. .PP .SH SEE ALSO -mdb(1), mono(1), mopen(1), mint(1), sn(1) +csharp(1), mdb(1), mono(1), mopen(1), pkg-config(1), sn(1) .PP .SH BUGS To report bugs in the compiler, you must file them on our bug tracking system, at: -http://www.mono-project.com/Bugs +http://www.mono-project.com/community/bugs/ .SH MAILING LIST -The Mono Mailing lists are listed at http://www.mono-project.com/Mailing_Lists +The Mono Mailing lists are listed at http://www.mono-project.com/community/help/mailing-lists/ .SH MORE INFORMATION The Mono C# compiler was developed by Novell, Inc -(http://www.novell.com, http) and is based on the +(http://www.novell.com) and Xamarin Inc (http://www.xamarin.com) is based on the ECMA C# language standard available here: http://www.ecma.ch/ecma1/STAND/ecma-334.htm .PP -The home page for the Mono C# compiler is at http://www.mono-project.com/CSharp_Compiler +The home page for the Mono C# compiler is at http://www.mono-project.com/docs/about-mono/languages/csharp/