静态链接与 F# 的独立怪癖
在 vs2010 终极版中,如果您将 --standalone 标志交给项目窗格中的 f# 编译器,它不会将空的 C# 项目与配置文件/资源文件链接
,但是,如果您显式声明 --staticlink,它将链接程序集:Config
这感觉像是一个错误...如果是故意的,请问为什么会这样?
In vs2010 ultimate edition if you hand the --standalone flag to the f# compiler in the projects pane it will not link an empty C# project with a configuration files/resource files
It will, however, link the assembly if you explicitly declare --staticlink:Config
This feels like a bug...if it is intentional, may I ask why this would be?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
这是预期的行为:
standalone 标志静态链接
FSharp.Core.dll
(F# 运行时)以及依赖于它的任何引用程序集(即任何其他F# 程序集)。它们需要链接,因为它们可能与主程序集共享某些类型(例如 F#list
类型等)staticlink 标志链接您显式指定的任何程序集(以及依赖它的任何程序集)。这意味着您可以使用该选项来链接,例如,您的主 F# 程序集引用的 C# 库。
我认为这两种情况是分开处理的,因为内联 F# 运行时需要稍微特殊的处理(几乎所有 F# 代码都以某种方式使用它,并且编译器可能会以不同的方式对待它)
This is an expected behavior:
The standalone flag statically links the
FSharp.Core.dll
(F# runtime) and any reference assemblies that depend on it (i.e. any other F# assemblies). They need to be linked because they may share some types with the primary assembly (e.g. F#list
type etc.)The staticlink flag links any assembly that you explicitly specify (and any assemblies that depend on it). This means that you can use the option to link, for example, C# library that your main F# assembly references.
I think that the two cases are handled separately, because inlining F# runtime requires slightly special handling (almost all F# code uses it in some way, and the compiler probably treats it differently)