.I \-debug-
Do not generate debugging information.
.TP
+.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
.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.
This is used for debugging the compiler. This makes the error emission
generate an exception that can be caught by a debugger.
.TP
-.I \-\-stacktrace
-Generates a stack trace at the time the error is reported, useful for
-debugging the compiler.
+.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
.I -lib:PATHLIST
Each path specified in the comma-separated list will direct the
Directs the compiler to look for libraries in the specified path.
Multiple paths can be provided by using the option multiple times.
.TP
+.I \-main:CLASS
+Tells the compiler which CLASS contains the entry point. Useful when
+you are compiling several classes with a Main method.
+.TP
.I \-nostdlib, -nostdlib+
Use this flag if you want to compile the core library. This makes the
compiler load its internal types from the assembly being compiled.
.I \-\-parse
Used for benchmarking. The compiler will only parse its input files.
.TP
+.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
.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
Links to the specified RESOURCE. The optional ID can be used to give
a name to the linked resource.
.TP
+.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
.I \-recurse:PATTERN, --recurse PATTERN
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
- bash$ mcs -recurse:'*.cs'
+ $ mcs -recurse:'*.cs'
.fi
.TP
+.I \-\-stacktrace
+Generates a stack trace at the time the error is reported, useful for
+debugging the compiler.
+.TP
.I \-target:KIND, \-t:KIND
Used to specify the desired target. The possible values are: exe
(plain executable), winexe (Windows.Forms executable), library
.I \-unsafe, -unsafe+
Enables compilation of unsafe code.
.TP
-.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 -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
.I \-v
Debugging. Turns on verbose yacc parsing.
.TP
.I \-\-version
Shows the compiler version.
.TP
+.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
.I \-\-
Use this to stop option parsing, and allow option-looking parameters
to be passed on the command line.
licenses are available from Ximian.
.PP
.SH SEE ALSO
-mono(1), mint(1)
+mono(1), mint(1), sn(1)
.PP
.SH BUGS
To report bugs in the compiler, you can use `bug-buddy', or you can