2002-02-12 01:18:46 +03:00
|
|
|
.TH mcs 1 "6 January 2001"
|
|
|
|
.SH NAME
|
|
|
|
mcs \- Mono Compiler Suite.
|
|
|
|
.SH SYNOPSIS
|
|
|
|
.B mcs
|
|
|
|
[option] [source-files]
|
|
|
|
.SH DESCRIPTION
|
|
|
|
mcs is the Mono C# compiler, an implementation of the ECMA-334
|
2002-03-25 01:42:33 +03:00
|
|
|
language specification. You can pass one or more options to drive the
|
2002-02-12 01:18:46 +03:00
|
|
|
compiler, and a set of source files. Extra options or arguments can
|
|
|
|
be provided in a response file. Response files are referenced by
|
|
|
|
prepending the @ symbol to the response file name.
|
|
|
|
.PP
|
2002-08-03 01:21:10 +04:00
|
|
|
The Mono C# compiler accepts the same options than the Microsoft C#
|
|
|
|
compiler does. Those options can start with a slash or a dash
|
|
|
|
(/checked is the same as -checked). Additionally to this, the
|
|
|
|
GNU-like options are supported, those begin with "--". All
|
|
|
|
MCS-specific flags which are not available in the Microsoft C#
|
|
|
|
compiler are available only with the GNU-style options.
|
|
|
|
.PP
|
2002-02-12 01:18:46 +03:00
|
|
|
C# source files must end with a ".cs" extension. Compilation of C#
|
|
|
|
source code requires all the files that make up a library, module or
|
|
|
|
executable to be provided on the command line. There is no support
|
|
|
|
for partial compilation. To achieve the benefits of partial
|
|
|
|
compilation, you should compile programs into their own assemblies,
|
|
|
|
and later reference them with the "-r" flag.
|
|
|
|
.PP
|
|
|
|
The Mono C# compiler generates images (.exe files) that contain CIL
|
|
|
|
byte code that can be executed by any system that implements a Common
|
|
|
|
Language Infrastructure virtual machine such as the Microsoft .NET
|
|
|
|
runtime engine on Windows or the Mono runtime engine on Unix systems.
|
|
|
|
Executables are not bound to a specific CPU or operating system.
|
|
|
|
.PP
|
|
|
|
.SH OPTIONS
|
|
|
|
.TP
|
|
|
|
.I \-\-about
|
|
|
|
Displays information about the Mono C# compiler
|
|
|
|
.TP
|
2003-12-21 22:22:46 +03:00
|
|
|
.I \-\-addmodule:MODULE1[,MODULE2]
|
|
|
|
Includes the specified modules in the resulting assembly.
|
|
|
|
.TP
|
2002-08-03 01:21:10 +04:00
|
|
|
.I -checked, -checked+
|
2002-02-12 01:18:46 +03:00
|
|
|
Sets the default compilation mode to `checked'. This makes all
|
|
|
|
the math operations checked (the default is unchecked).
|
|
|
|
.TP
|
2002-08-03 01:21:10 +04:00
|
|
|
.I -checked-
|
|
|
|
Sets the default compilation mode to `unchecked'. This makes all
|
|
|
|
the math operations unchecked (this is the default).
|
|
|
|
.TP
|
2002-09-07 04:17:40 +04:00
|
|
|
.I -codepage:ID
|
|
|
|
Specifies the code page used to process the input files from the
|
|
|
|
point it is specified on. By default files will be processed in the
|
|
|
|
Latin-1 code page. The compiler will also automatically detect
|
|
|
|
Unicode files that have an embedded byte mark at the beginning. The
|
|
|
|
special ID "utf8" can be used to switch to utf8 and the ID "reset"
|
|
|
|
restores the automatic handling of code pages.
|
|
|
|
.TP
|
2002-08-03 01:21:10 +04:00
|
|
|
.I \-define:SYMLIST, -d:SYMLIST
|
|
|
|
Defines the symbol listed by the semi-colon separeted list SYMLIST
|
|
|
|
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.
|
2002-03-24 22:12:57 +03:00
|
|
|
.TP
|
2002-08-03 01:21:10 +04:00
|
|
|
.I \-debug, \-debug+, \-g
|
2003-04-03 07:22:31 +04:00
|
|
|
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.
|
2002-02-12 01:18:46 +03:00
|
|
|
.TP
|
2002-08-03 01:21:10 +04:00
|
|
|
.I \-debug-
|
|
|
|
Do not generate debugging information.
|
|
|
|
.TP
|
2004-03-25 15:46:03 +03:00
|
|
|
.I \-delaysign+
|
|
|
|
Only embed the strongname public key into the assembly. The actual
|
|
|
|
signing must be done in a later stage using the SN tool. This is useful
|
|
|
|
to protect the private key during development. Note that delay signing
|
|
|
|
can only be done using a strongname key file (not a key container). The
|
|
|
|
option is equivalent to including [assembly: AssemblyDelaySign (true)]
|
|
|
|
in your source code. Compiler option takes precedence over the
|
|
|
|
attributes.
|
|
|
|
.TP
|
|
|
|
.I \-delaysign-
|
|
|
|
Default. Strongname (sign) the assembly using the strong name key file
|
|
|
|
(or container). The option is equivalent to including [assembly:
|
|
|
|
AssemblyDelaySign (false)] in your source code. Compiler option takes
|
|
|
|
precedence over the attributes.
|
|
|
|
.TP
|
2002-09-15 20:13:31 +04:00
|
|
|
.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
|
2002-02-12 01:18:46 +03:00
|
|
|
.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
|
2004-03-25 15:46:03 +03:00
|
|
|
.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
|
|
|
|
by default (or when using delaysign-). A file containing only the
|
|
|
|
public key can be used with delaysign+. The option is equivalent to
|
|
|
|
including [assembly: AssemblyKeyFile ("KEYFILE")] in your source code.
|
|
|
|
Compiler option takes precedence over the attributes.
|
|
|
|
.TP
|
|
|
|
.I \-keycontainer:CONTAINER
|
|
|
|
Strongname (sign) the output assembly using the key pair present in
|
|
|
|
the specified container. Note that delaysign+ is ignored when using
|
|
|
|
key containers. The option is equivalent to including [assembly:
|
|
|
|
AssemblyKeyName ("CONTAINER")] in your source code. Compiler option
|
|
|
|
takes precedence over the attributes.
|
|
|
|
.TP
|
2004-09-09 12:55:20 +04:00
|
|
|
.I \-langversion:TEXT
|
|
|
|
The option specifies the version of the language to use. The feature
|
|
|
|
set is different in each C# version. This switch can be used to force
|
|
|
|
the compiler to allow only a subset of the features.
|
|
|
|
The possible values are:
|
|
|
|
.nf
|
|
|
|
|
|
|
|
Default - Instruct compiler to use the latest version. Equivalent
|
|
|
|
is to omit the switch.
|
|
|
|
|
|
|
|
ISO-1 - Restrict compiler to use only ISO standardized features.
|
|
|
|
The usage of features such as generics, static classes, anonymous
|
|
|
|
methods will lead to error.
|
|
|
|
.TP
|
2002-08-03 01:21:10 +04:00
|
|
|
.I -lib:PATHLIST
|
|
|
|
Each path specified in the comma-separated list will direct the
|
|
|
|
compiler to look for libraries in that specified path.
|
|
|
|
.TP
|
2002-02-12 01:18:46 +03:00
|
|
|
.I \-L PATH
|
|
|
|
Directs the compiler to look for libraries in the specified path.
|
2002-08-03 01:21:10 +04:00
|
|
|
Multiple paths can be provided by using the option multiple times.
|
2002-02-12 01:18:46 +03:00
|
|
|
.TP
|
2004-04-22 21:08:18 +04:00
|
|
|
.I \-main:CLASS
|
|
|
|
Tells the compiler which CLASS contains the entry point. Useful when
|
|
|
|
you are compiling several classes with a Main method.
|
|
|
|
.TP
|
2002-08-03 01:21:10 +04:00
|
|
|
.I \-nostdlib, -nostdlib+
|
2002-02-12 01:18:46 +03:00
|
|
|
Use this flag if you want to compile the core library. This makes the
|
|
|
|
compiler load its internal types from the assembly being compiled.
|
|
|
|
.TP
|
2002-08-03 01:21:10 +04:00
|
|
|
.I \-noconfig, \-noconfig+
|
2002-03-20 00:03:15 +03:00
|
|
|
Disables the default compiler configuration to be loaded. The
|
|
|
|
compiler by default has references to the system assemblies.
|
|
|
|
.TP
|
2002-08-03 01:21:10 +04:00
|
|
|
.I \-nowarn:WARNLIST
|
|
|
|
Makes the compiler ignore warnings specified in the comma-separeted
|
|
|
|
list WARNLIST>
|
2002-02-12 01:18:46 +03:00
|
|
|
.TP
|
2002-08-03 01:21:10 +04:00
|
|
|
.I -out:FNAME, -o FNAME
|
2002-02-12 01:18:46 +03:00
|
|
|
Names the output file to be generated.
|
|
|
|
.TP
|
|
|
|
.I \-\-parse
|
|
|
|
Used for benchmarking. The compiler will only parse its input files.
|
|
|
|
.TP
|
2004-05-14 00:24:49 +04:00
|
|
|
.I \-pkg:package1[,packageN]
|
|
|
|
The compiler will invoke pkg-config --libs on the set of packages
|
|
|
|
specified on the command line to obtain libraries and directories to
|
|
|
|
compile the code.
|
|
|
|
.PP
|
|
|
|
This is typically used with third party components, like this:
|
|
|
|
.nf
|
|
|
|
$ mcs -pkg:gtk-sharp demo.cs
|
|
|
|
.fi
|
|
|
|
.TP
|
2002-10-24 20:11:56 +04:00
|
|
|
.I -resource:RESOURCE[,ID]
|
2002-09-18 01:23:51 +04:00
|
|
|
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
|
|
|
|
name will be the file name.
|
|
|
|
.TP
|
2002-10-24 20:11:56 +04:00
|
|
|
.I -linkresource:RESOURCE[,ID]
|
2002-09-18 01:23:51 +04:00
|
|
|
Links to the specified RESOURCE. The optional ID can be used to give
|
|
|
|
a name to the linked resource.
|
2002-02-12 01:18:46 +03:00
|
|
|
.TP
|
2004-01-09 17:07:45 +03:00
|
|
|
.I -r:ASSEMBLY1[,ASSEMBLY2], \-r ASSEMBLY1[,ASSEMBLY2]
|
|
|
|
Reference the named assemblies. Use this to use classes from the named
|
|
|
|
assembly in your program. The assembly will be loaded from either the
|
|
|
|
system directory where all the assemblies live, or from the path
|
|
|
|
explicitly given with the -L option.
|
|
|
|
.PP
|
|
|
|
You can also use a semicolon to separate the assemblies instead of a
|
|
|
|
comma.
|
|
|
|
.TP
|
2002-08-03 01:21:10 +04:00
|
|
|
.I \-recurse:PATTERN, --recurse PATTERN
|
2002-03-19 06:27:36 +03:00
|
|
|
Does recursive compilation using the specified pattern. In Unix the
|
|
|
|
shell will perform globbing, so you migth want to use it like this:
|
|
|
|
.PP
|
|
|
|
.nf
|
2004-05-14 00:24:49 +04:00
|
|
|
$ mcs -recurse:'*.cs'
|
2002-03-19 06:27:36 +03:00
|
|
|
.fi
|
|
|
|
.TP
|
2004-05-14 00:24:49 +04:00
|
|
|
.I \-\-stacktrace
|
|
|
|
Generates a stack trace at the time the error is reported, useful for
|
|
|
|
debugging the compiler.
|
|
|
|
.TP
|
2002-08-03 01:21:10 +04:00
|
|
|
.I \-target:KIND, \-t:KIND
|
2003-12-21 22:22:46 +03:00
|
|
|
Used to specify the desired target. The possible values are: exe
|
|
|
|
(plain executable), winexe (Windows.Forms executable), library
|
|
|
|
(component libraries) and module (partial library).
|
2002-02-12 01:18:46 +03:00
|
|
|
.TP
|
|
|
|
.I \-\-timestamp
|
|
|
|
Another debugging flag. Used to display the times at various points
|
|
|
|
in the compilation process.
|
|
|
|
.TP
|
2002-08-03 01:21:10 +04:00
|
|
|
.I \-unsafe, -unsafe+
|
2002-02-12 01:18:46 +03:00
|
|
|
Enables compilation of unsafe code.
|
|
|
|
.TP
|
|
|
|
.I \-v
|
|
|
|
Debugging. Turns on verbose yacc parsing.
|
2002-02-22 20:22:17 +03:00
|
|
|
.TP
|
2003-04-22 09:26:15 +04:00
|
|
|
.I \-v2
|
|
|
|
Turns on C# 2.0 language features.
|
|
|
|
.TP
|
|
|
|
.I \-\-version
|
|
|
|
Shows the compiler version.
|
|
|
|
.TP
|
2004-01-09 17:07:45 +03:00
|
|
|
.I \-warnaserror, \-warnaserror+
|
|
|
|
Treat warnings as errors.
|
|
|
|
.TP
|
|
|
|
.I \-warn:LEVEL
|
|
|
|
Sets the warning level. 0 is the lowest warning level, and 4 is the
|
|
|
|
highest. The default is 2.
|
|
|
|
.TP
|
|
|
|
.I \-win32res:FILE
|
|
|
|
Specifies a Win32 resource file (.res) to be bundled into the
|
|
|
|
resulting assembly.
|
|
|
|
.TP
|
|
|
|
.I \-win32icon:FILE
|
|
|
|
Attaches the icon specified in FILE on the output into the resulting
|
|
|
|
assembly.
|
|
|
|
.TP
|
2002-02-22 20:22:17 +03:00
|
|
|
.I \-\-
|
|
|
|
Use this to stop option parsing, and allow option-looking parameters
|
|
|
|
to be passed on the command line.
|
2002-02-12 01:18:46 +03:00
|
|
|
.PP
|
2002-05-27 19:21:24 +04:00
|
|
|
.SH SPECIAL DEFINES
|
|
|
|
The
|
|
|
|
.B TRACE
|
|
|
|
and
|
|
|
|
.B DEBUG
|
|
|
|
defines have a special meaning to the compiler.
|
|
|
|
.PP
|
|
|
|
By default calls to methods and properties in the
|
|
|
|
System.Diagnostics.Trace class are not generated unless the TRACE
|
|
|
|
symbol is defined (either through a "#define TRACE") in your source
|
|
|
|
code, or by using the
|
|
|
|
.I "--define TRACE"
|
|
|
|
in the command line.
|
|
|
|
.PP
|
|
|
|
By default calls to methods and properties in the
|
|
|
|
System.Diagnostics.Debug class are not generated unless the DEBUG
|
|
|
|
symbol is defined (either through a "#define DEBUG") in your source
|
|
|
|
code, or by using the
|
|
|
|
.I "--define DEBUG"
|
|
|
|
in the command line.
|
|
|
|
.PP
|
|
|
|
Note that the effect of defining TRACE and DEBUG is a global setting,
|
|
|
|
even if they are only defined in a single file.
|
|
|
|
.PP
|
2002-03-24 22:12:57 +03:00
|
|
|
.SH DEBUGGING SUPPORT
|
|
|
|
When use the "--debug" or "-g" flag, MCS will create an assembler file
|
|
|
|
FILE-debug.s containing debugging information where FILE is the name of
|
|
|
|
the generated assembly. You need to run this file through the assembler
|
|
|
|
to get a object file FILE-debug.o. See mono's "--dwarf-plus" argument
|
|
|
|
for details on how to use this file.
|
2002-02-21 05:34:18 +03:00
|
|
|
.SH NOTES
|
|
|
|
During compilation the MCS compiler defines the __MonoCS__ symbol,
|
|
|
|
this can be used by pre-processor instructions to compile Mono C#
|
2003-09-14 04:18:07 +04:00
|
|
|
compiler specific code. Please note that this symbol is only to test
|
|
|
|
for the compiler, and is not useful to distinguish compilation or
|
|
|
|
deployment platforms.
|
2002-02-12 01:18:46 +03:00
|
|
|
.SH AUTHORS
|
2002-08-03 01:21:10 +04:00
|
|
|
The Mono C# Compiler was written by Miguel de Icaza, Ravi Pratap and
|
|
|
|
Martin Baulig at Ximian.
|
2002-02-12 01:18:46 +03:00
|
|
|
.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
|
|
|
|
licenses are available from Ximian.
|
|
|
|
.PP
|
2002-03-25 01:42:33 +03:00
|
|
|
.SH SEE ALSO
|
2004-03-25 15:46:03 +03:00
|
|
|
mono(1), mint(1), sn(1)
|
2002-03-25 01:42:33 +03:00
|
|
|
.PP
|
2002-02-12 01:18:46 +03:00
|
|
|
.SH BUGS
|
|
|
|
To report bugs in the compiler, you can use `bug-buddy', or you can
|
|
|
|
file bug reports in our bug tracking system:
|
|
|
|
http://bugzilla.ximian.com.
|
|
|
|
.SH MAILING LIST
|
|
|
|
The Mono Mailing List is available at: mono-list-request@ximian.com
|
|
|
|
.SH MORE INFORMATION
|
|
|
|
The Mono C# compiler is developed by Ximian, Inc
|
|
|
|
(http://www.ximian.com) (http://www.ximian.com) and is based on the
|
|
|
|
ECMA C# language standard available here:
|
|
|
|
http://www.ecma.ch/ecma1/STAND/ecma-334.htm
|
|
|
|
|
|
|
|
|