静态链接与 F# 的独立怪癖

发布于 2024-11-01 04:38:41 字数 168 浏览 0 评论 0原文

在 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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

空袭的梦i 2024-11-08 04:38:41

这是预期的行为:

  • 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)

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文