代码之家  ›  专栏  ›  技术社区  ›  Cute

如何静态链接C类库的库?

  •  6
  • Cute  · 技术社区  · 17 年前

    我正在使用Microsoft提供的dll在C中创建类llibrary。

    现在,我想静态地将这些Microsoft提供的库添加到我的dll中。我如何才能做到这一点。 我只是添加了对那些微软提供的dll的引用并创建了我的dll?还好吧?

    如果Microsoft提供的dll在其他计算机上不可用,则我的dll可能会失败我需要静态添加库?是吗?

    我该怎么做?是吗?

    4 回复  |  直到 17 年前
        1
  •  6
  •   Mehrdad Afshari    17 年前

    不存在静态链接到.NET中的另一个程序集的情况。有一些第三方产品,如 .NET linker 将程序集合并为一个程序集,但不受支持。

    如果您有该库的重新分发许可证,则可以随程序集一起发送副本。在visual studio中,可以通过在该程序集引用的“属性”窗口中将“复制本地”设置为“true”来实现此目的。

        2
  •  4
  •   Kaganar    14 年前

    请参阅此处的讨论并阅读评论——Jeff确实提供了一种方法。

    http://blogs.msdn.com/b/microsoft_press/archive/2010/02/03/jeffrey-richter-excerpt-2-from-clr-via-c-third-edition.aspx

        3
  •  3
  •   Marc Gravell    17 年前

    如果dll在执行时不可用;是的,它将失败。然而:

    • 许多Microsoft DLL都预装了.NET(注意:“客户端配置文件”)
    • 许多Microsoft dll是可再发行的;因此您可以将它们包含在包中

    核心框架中没有提供链接器,尽管 ILMerge 可能有用。

        4
  •  0
  •   MSIL    17 年前

    目前还不清楚您想要实现什么,但您似乎担心您的类库是否可以在其他机器上工作。问题是.net framework是一个免费的可再发行软件,如果目标计算机上没有它,就应该安装它。由于.NET框架已经安装在计算机上,因此应该没有问题。

    这样的静态链接在.NET中没有意义,除非将程序集引用添加到项目中。希望有帮助