D运行时为DLL

Tar*_*san 7 windows dll d runtime

有没有人知道至少D运行时和D 2的Phobos是预先构建为DLL还是至少准备以这种方式编译?目前,据我了解,它需要将所有相关功能和/或类别标记为导出.在当前的DMD来源中找不到类似的东西.谢谢.

Mic*_*ich 6

目前,Phobos可作为预构建的LIB文件使用,该文件在编译期间静态链接到您的可执行文件.

这对DLL有一些好处:

  • 部署 - 您可以始终确保您的可执行文件具有适当的运行时/ gc/phobos可用 - 与您的应用程序一起测试的那个.每个月都有新版本的Phobos和D运行时,在这种情况下使用DLL会导致版本问题.

缺点

  • 可执行文件大小略大(100s kb)
  • 每个"单元"exe/dll都有自己的垃圾收集器.

你为什么要研究使用DLL for Phobos的选项?您在使用LIB时遇到了哪些不足之处?

  • @ target-san不要再担心D的运行时间了几年.一旦ABI稳定了一年左右,它们就会开始出货DLL.在此之前版本化快速变化的库只会产生更多的问题,而不是它的价值. (5认同)
  • 老实说,除非二进制大小*确实*成为问题,否则我不会担心DLL.他们比他们的价值更麻烦. (4认同)