英语法语西班牙语

Ad


OnWorks 网站图标

dmcs - 云端在线

通过 Ubuntu Online、Fedora Online、Windows 在线模拟器或 MAC OS 在线模拟器在 OnWorks 免费托管服务提供商中运行 dmcs

这是命令 dmcs,可以使用我们的多个免费在线工作站之一在 OnWorks 免费托管服务提供商中运行,例如 Ubuntu Online、Fedora Online、Windows 在线模拟器或 MAC OS 在线模拟器

程序:

您的姓名


mcs - Mono C# 编译器

概要


MCS [选项] [源文件]

商品描述


mcs 是 Mono C# 编译器,是 ECMA-334 语言规范的实现。
您可以传递一个或多个选项来驱动编译器,以及一组源文件。 额外的
选项或参数可以在响应文件中提供。 响应文件被引用
在响应文件名前添加@ 符号。

MCS 编译器用于针对最新的 Mono 基类库版本进行编译和
完全实现 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 文件)
由任何实现公共语言基础架构虚拟机的系统执行
例如 Windows 上的 Microsoft .NET 运行时引擎或 Unix 上的 Mono 运行时引擎
系统。 可执行文件不绑定到特定的 CPU 或操作系统。

Mono C# 编译器默认只引用三个程序集:mscorlib.dll、System.dll
和 System.Xml.dll。 如果要引用额外的库,则必须手动指定
它们使用 -pkg: 命令行选项或 -r: 命令行选项。 或者如果
要获取所有系统库,可以使用 -pkg:dotnet 命令行
选项。

配置


- 关于
显示有关 Mono C# 编译器的信息

--addmodule:模块1[,模块2]
在生成的程序集中包含指定的模块。 模块是由
使用 -target:module 选项调用编译器

-检查, -检查+
将默认编译模式设置为“已检查”。 这使得所有的数学运算
选中(默认未选中)。

-检查-
将默认编译模式设置为“未选中”。 这使得所有的数学
未选中操作(这是默认设置)。

-clscheck-, -clscheck+
禁用或启用公共语言规范 (CLS) 检查(它已启用
默认)。

公共语言规范 (CLS) 将类型的可互操作子集定义为
以及编译器(CLS 生产者)和开发者必须遵循的约定
将代码暴露给其他编程语言(CLS 使用者)。

-代码页:ID
指定用于处理输入文件的代码页
上指定。 默认情况下,文件将在依赖于环境的环境中处理
本机代码页。 编译器还会自动检测 Unicode 文件
在开头有一个嵌入的字节标记。

其他流行的编码是 28591 (Latin1)、1252 (iso-8859-1) 和 65001 (UTF-8)。

MCS 支持几种简写:“utf8”可用于指定 utf-8 而不是
使用神秘的 65001 和“重置”恢复代码页的自动处理。
这些速记在 Microsoft 编译器上不可用。

-定义:符号表, -d:符号表
定义由分号分隔的列表 SYMLIST SYMBOL 列出的符号。 这个
可以在源代码中被预处理器测试,也可以被方法使用
已用 Conditional 属性标记的。

- 调试, -调试+
生成调试信息。 要获取带有调试信息的堆栈跟踪,
您需要使用`--debug'标志调用mono运行时。 调试
信息存储在与生产相同的输出文件夹中的 MDB 文件中
部件。

-调试-
不生成调试信息。

-延迟+
仅将强名称公钥嵌入到程序集中。 实际签署必须是
稍后使用 SN 工具完成。 这对于保护私钥很有用
在开发过程中。 请注意,延迟签名只能使用强名称密钥完成
文件(不是密钥容器)。 该选项等效于包括 [assembly:
AssemblyDelaySign (true)] 在您的源代码中。 编译器选项优先
超过属性。

-延迟标志-
默认。 使用强名称密钥文件(或
容器)。 该选项相当于包括 [assembly: AssemblyDelaySign
(false)] 在您的源代码中。 编译器选项优先于属性。

-doc:文件
从源代码中提取 C#/XML 文档并存储在给定的
文件。

-错误报告
此标志被 Mono 的 C# 编译器忽略,并且仅用于允许 MCS
用作 msbuild/xbuild 的 CSC 替代品。

- 致命的
这用于调试编译器。 这使得误差发射产生一个
可以被调试器捕获的异常。

-文件对齐
此标志被 Mono 的 C# 编译器忽略,并且仅用于允许 MCS
用作 msbuild/xbuild 的 CSC 替代品。

-全路径
编译器发出的任何源代码错误或警告仅包含文件名
默认。 此选项会导致编译器改为发出绝对文件路径。

-keyfile:密钥文件
使用指定的密钥对中存在的密钥对强命名(签名)输出程序集
强名称密钥文件 (snk)。 默认情况下(或使用
延迟符号-)。 仅包含公钥的文件可以与 delaysign+ 一起使用。 这
选项相当于在您的
源代码。 编译器选项优先于属性。

-keycontainer:容器
使用指定的密钥对中存在的密钥对强命名(签名)输出程序集
容器。 请注意,使用密钥容器时将忽略 delaysign+。 选项是
相当于在你的源代码中包含 [assembly: AssemblyKeyName ("CONTAINER")]
代码。 编译器选项优先于属性。

-语言版本:文本
该选项指定要使用的语言版本。 功能集是
每个 C# 版本都不同。 此开关可用于强制编译器
只允许特征的一个子集。 可能的值为:

默认
指示编译器使用最新版本。 相当于省略了
开关(当前默认为 C# 4.0 语言规范)。

ISO-1的 限制编译器仅使用第一个 ISO 标准化功能。 的使用
泛型、静态类、匿名方法等特性将导致
错误。

ISO-2的 限制编译器仅使用第二个 ISO 标准化功能。 这个
允许使用泛型、静态类、迭代器和匿名方法
例如。

3 限制编译器仅使用 C# 3.0(a
ISO-1 和 ISO-2 的超集)。

4 限制编译器仅使用 C# 4.0 中可用的功能
规格。

试验
从即将推出的语言版本中启用不稳定的功能。

请注意,此标志仅限制可用于
程序员。 生产的程序集的一个版本可以使用控制 软件开发套件(SDK) 选项。

-lib:路径列表
逗号分隔列表中指定的每个路径将指示编译器查找
对于该指定路径中的库。

-L PATH
指示编译器在指定路径中查找库。 多条路径
可以通过多次使用该选项来提供。

-主要:类
告诉编译器哪个 CLASS 包含入口点。 有用的时候
使用 Main 方法编译多个类。

-nostdlib, -nostdlib+
如果要编译核心库,请使用此标志。 这使得编译器
从正在编译的程序集中加载其内部类型。

-无配置, -无配置+
禁用要加载的默认编译器配置。 默认编译器
有对系统程序集的引用。

-nowarn:警告列表
使编译器忽略以逗号分隔的列表 WARNLIST> 中指定的警告

- 优化, -优化+, -优化-
控制代码上的编译器代码生成优化。 使用 -optimize 或
-optimize+ 将打开优化,-optimize- 将关闭它。 默认在
mcs是优化-。 该选项可以与 -debug 混合使用,但为了获得最佳调试效果
经验建议关闭选项。

-出:FNAME, -o 姓名
命名要生成的输出文件。

--解析
用于基准测试。 编译器只会解析它的输入文件。

-pkg:程序包1[,程序包N]
给定包的参考程序集。

编译器将对指定的一组包调用 pkg-config --libs
命令行获取库和目录以编译代码。

这通常与第三方组件一起使用,如下所示:

$ mcs -pkg:gtk-sharp demo.cs

-pkg:点网
这将指示编译器引用 System.* 库
在典型的 dotnet 框架安装上可用,请注意这确实
不包括所有 Mono 库,仅包括 System.* 库。 这是一个
那些移植代码的便捷快捷方式。

-平台:ARCH
用于指定目标平台。 可能的值是:anycpu,
anycpu32bitpreferred、arm、x86、x64 或 itanium。 默认选项是 anycpu。

-资源:资源[,ID]
嵌入到给定的资源文件。 可选的 ID 可用于给出不同的
资源的名称。 如果未指定,资源名称将是文件名。

-链接资源:资源[,ID]
链接到指定的 RESOURCE。 可选的 ID 可用于为
链接的资源。

-r:组装1 [,组装2], -参考 组装 1[,组装 2]
引用命名的程序集。 使用它来使用命名程序集中的类
你的程序。 程序集将从系统目录加载
所有程序集都处于活动状态,或来自使用 -L 选项显式指定的路径。

您还可以使用分号代替逗号来分隔程序集。

-reference:ALIAS=汇编
C# 的外部别名参考支持。

如果您有提供相同类型的不同程序集,则 extern 别名
支持允许您提供软件可以用来告诉那些
公寓。 ASSEMBLY 中的类型将作为 ALIAS 公开,然后在 C# 源代码中公开
代码,你需要做:

外部别名 ALIAS;
将其带入您的命名空间。 比如应付两个图形库
定义“Graphics.Point”,一个在“OpenGL.dll”中,一个在“Postscript.dll”中,你
会像这样调用编译器:

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

在你的源代码中,你会写:

extern 别名 Postscript;
外部别名 OpenGL;

X级{
// 这是来自 Postscript.dll 的 Graphics.Point
Postscript.Point p = new Postscript.Point();

// 这是来自 OpenGL.dll 的 Graphics.Point
OpenGL.Point p = 新的 OpenGL.Point();
}

-递归:模式, --递归 模式
使用指定的模式进行递归编译。 在 Unix 中,shell 将
执行通配,所以你可能想像这样使用它:

$ mcs -recurse:'*.cs'

-sdk:版本
用于指定用于编译的基类库程序集的版本。
以下预定义值有效:2、4(默认)以及任何自定义值。
预定义的版本号意味着指定了哪个自定义值 mcs 将尝试
在单声道安装位置 PREFIX/lib/mono/ 中找到基类库.

- 贝壳
以交互模式启动编译器,为语句和
表达式。 一个快捷方式是使用 尖锐的 直接指挥。

- 堆栈跟踪
在报告错误时生成堆栈跟踪,用于调试
编译器。

-目标:种类, -t:种类
用于指定所需的目标。 可能的值是: exe (plain
可执行文件)、winexe(Windows.Forms 可执行文件)、库(组件库)和
模块(部分库)。

--时间戳
另一个调试标志。 用于显示在不同时间点的时间
编译过程。

- 不安全, -不安全+
启用不安全代码的编译。

-v 调试。 打开详细的 yacc 解析。

- 版
显示编译器版本。

-警告错误, -警告错误+
所有编译器警告都将报告为错误。

-warnaserror:W1,[Wn], -warnaserror+:W1,[Wn]
将一个或多个编译器警告视为错误。

-warnaserror-:W1,[Wn]
将一个或多个编译器警告设置为始终作为警告受到威胁。 成为
与 -warnaserror 一起使用时很有用。

-警告:级别
设置警告级别。 0 是最低警告级别,4 是最高级别。 这
默认值为 4。

-win32res:文件
指定要捆绑到生成的程序集中的 Win32 资源文件 (.res)。

-win32icon:文件
将输出上 FILE 中指定的图标附加到生成的程序集中。

-- 使用它来停止选项解析,并允许传递选项查找参数
在命令行上。

配套 AND 图书馆


引用程序集时,如果程序集的名称是路径,编译器将尝试
加载路径中指定的程序集。 如果没有,那么编译器会尝试
从当前目录、编译器基目录加载程序集,如果
在指定为参数的目录中的任何地方都找不到程序集
-lib: 命令参数。

编译器使用库路径来定位库,并且能够引用库
如果使用该目录,则来自特定包。 为了简化包的使用,
C# 编译器包括 -pkg: 命令行选项,用于加载特定的
图书馆馆藏。

编译器可见的库相对于安装前缀存储在
PREFIX/lib/mono/ 称为 PACKAGEBASE,mcs、gmcs 和 smcs 的默认值如下
如下:

MCS 引用 PACKAGEBASE/1.0 目录

通用汽车公司 引用 PACKAGEBASE/2.0 目录

短信 引用 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: 调用手动引用,或通过引用
直接图书馆。

特别 定义


跟踪DEBUG 定义对编译器有特殊意义。

默认情况下,不会调用 System.Diagnostics.Trace 类中的方法和属性
除非在您的文件中定义了 TRACE 符号(通过“#define TRACE”)
源代码,或使用 - 定义 跟踪 在命令行中。

默认情况下,不会调用 System.Diagnostics.Debug 类中的方法和属性
除非在您的文件中定义了 DEBUG 符号(通过“#define DEBUG”)
源代码,或使用 - 定义 DEBUG 在命令行中。

注意,定义 TRACE 和 DEBUG 的效果是全局设置,即使它们是
仅在单个文件中定义。

调试 客户服务


当使用“-debug”标志时,MCS 将生成一个扩展名为 .mdb 的文件
包含生成的程序集的调试信息。 该文件被消耗
Mono 调试器 (mdb)。

环境 变数


MCS_颜色
如果设置了这个变量,它包含一个“前景,背景”形式的字符串
指定使用哪种颜色在某些终端上显示错误。

背景是可选的,默认为您的终端当前背景。 这
可能的前景颜色有: 黑色, 红, 亮红, 绿色, 亮绿色,
黄色, 亮黄的, 蓝色、亮蓝色、洋红色、亮洋红色、青色、亮青色、
灰色、白色和亮白色。

可能的背景颜色有:黑色、红色、绿色、黄色、蓝色、洋红色、
青色、灰色和白色。

例如,您可以从 shell 设置这些变量:
导出 MCS_COLORS
MCS_COLORS=错误=亮白色,红色

您可以通过将此变量设置为“禁用”来禁用内置配色方案。

附注


在编译期间,MCS 编译器定义了 __MonoCS__ 符号,这可以被
编译 Mono C# 编译器特定代码的预处理器指令。 请注意
这个符号只是为了测试编译器,对区分编译没有用
或部署平台。

作者


Mono C# 编译器由 Miguel de Icaza、Ravi Pratap、Martin Baulig、Marek 编写
萨法尔 (Safar) 和王侯 (Raja Harinath)。 该开发项目由 Ximian、Novell 和 Marek Safar 资助。

使用 onworks.net 服务在线使用 dmcs


免费服务器和工作站

下载 Windows 和 Linux 应用程序

Linux 命令

Ad