【发布时间】:2011-04-12 05:47:10
【问题描述】:
在 vs2010 终极版中,如果您将 --standalone 标志交给项目窗格中的 f# 编译器,它不会将空 C# 项目与配置文件/资源文件链接
但是,如果您显式声明 --staticlink:Config,它将链接程序集
这感觉像是一个错误……如果是故意的,请问为什么会这样?
【问题讨论】:
标签: compiler-construction f# linker
在 vs2010 终极版中,如果您将 --standalone 标志交给项目窗格中的 f# 编译器,它不会将空 C# 项目与配置文件/资源文件链接
但是,如果您显式声明 --staticlink:Config,它将链接程序集
这感觉像是一个错误……如果是故意的,请问为什么会这样?
【问题讨论】:
标签: compiler-construction f# linker
这是预期的行为:
standalone 标志静态链接 FSharp.Core.dll(F# 运行时)和依赖它的任何引用程序集(即任何其他 F# 程序集)。它们需要链接,因为它们可能与主程序集共享某些类型(例如 F# list 类型等)
staticlink 标志链接您明确指定的任何程序集(以及依赖它的任何程序集)。这意味着您可以使用该选项来链接,例如,您的主要 F# 程序集引用的 C# 库。
我认为这两种情况是分开处理的,因为内联 F# 运行时需要稍微特殊处理(几乎所有 F# 代码都以某种方式使用它,编译器可能会区别对待)
【讨论】: