【问题标题】:Should I ensure my code compiles with both DMD and GDC?我应该确保我的代码同时使用 DMD 和 GDC 编译吗?
【发布时间】:2012-10-19 19:59:12
【问题描述】:

我猜想部分等价的问题:使用 DMD 编译的代码是否应该在所有情况下使用 GDC 自动编译?

我问是因为我在从 ubuntu 10.4(看似循环依赖,叹气)存储库安装现代版本的 GDC 时遇到问题。

【问题讨论】:

  • 您是否在编译 GDC 编译器时遇到问题,或者在使用 GDC 编译代码时遇到问题?还有,具体是什么问题?
  • 从 ubuntu 存储库中获取 gdc 只给了我一个旧版本的 GDC。相反,我使用的是来自 debian/squeeze 的那个,它需要 gdc-4.3 >= 1:1.060-4.3.5-1。所以我也尝试从 debian/squeeze 获取 gdc-4.3,但这需要 g++-4.3 >= 4.3.5-1。所以我从 debian/squeeze 中获取了 g++-4.3,但这需要 libstdc++6-4.3-dev。所以我从 debian/squeeze 中获取它,除了这需要 g++-4.3.... 循环依赖。耶。烦人的是,我实际上确实从源代码编译了 gcc4.6.1,用于其他任务。

标签: d dmd gdc


【解决方案1】:

我应该确保我的代码同时使用 DMD 和 GDC 编译吗?

取决于您是否计划在这两个编译器上编译代码。如果您只打算使用 DMD 进行编译,则无需确保您的代码在 GDC 上编译。也就是说,编写可跨编译器移植的代码通常是个好主意,以防万一有一天您确实需要使用 GDC。

使用 DMD 编译的代码是否应该在所有情况下使用 GDC 自动编译?

大多数情况下,编译器之间存在并且总是存在细微差别。

GDC 和 DMD(和 LDC)都共享相同的编译器前端,因此在大多数情况下,它们的功能是等效的。当您开始接触较低级别的东西时,通常会出现差异,例如内联汇编器,SIMD 内部函数。

【讨论】:

  • 这是我第一次涉足 D,我正在考虑在接下来的几个月内将它用于一个项目,以支持 C++,因为我一直想尝试 D,所以我没有'不要想象我会使用任何内联汇编程序或内在函数。
  • 编译器之间也存在版本偏差:gdc 或 ldc 的最新版本可能并不总是具有 dmd 的最新功能。
猜你喜欢
  • 2014-01-01
  • 1970-01-01
  • 2011-10-09
  • 2017-07-17
  • 2011-12-18
  • 1970-01-01
  • 2014-08-12
  • 2021-05-18
  • 1970-01-01
相关资源
最近更新 更多