无法使用GDC编译D程序

Cant compile D program using GDC

我正在尝试使用 GDC 编译 D 程序。我目前使用的是 Windows XP SP3,我使用从这里下载的 "Windows X86 32bit (i686-w64-mingw32)" 软件包: http://gdcproject.org/downloads(底部的 link)。 因此,当我解压缩二进制文件并调用 gdc 来编译一个像这样的简单程序时:

import std.stdio;

void main() {
     writeln("Hello World. ");
}

我遇到了一堆汇编错误:

http://pastebin.com/1kwU10Tz

我知道 link 的意思是 "Unsupported alpha build" 但我不太明白这条消息的意思(也许你可以告诉我)。但是尽管如此,我还是尝试从存档中下载早期版本,但都失败并出现类似错误。

有办法解决吗?还是我在这里遗漏了一些关键点。

编辑: 这是编译器生成的汇编代码: http://pastebin.com/w5q0rNNd

GDC windows 构建真的很糟糕。对于最新版本,我们只检查代码是否编译。我们甚至没有对这些版本进行冒烟测试。我们没有正确测试 MinGW 端口的工具,只要我们不能正确测试,完成端口就没有用。我希望这会在今年晚些时候有所改变,但我不会做出任何承诺 ;-) 现在,我从 gdcproject 页面删除了下载 link。

TL;DR:不要使用 MinGW GDC 构建,它们已损坏。

有关错误消息的一些信息:如果您查看 ASM,您会看到如下名称: __D11TypeInfo_(null)6__initZ

符号名称不得包含括号。在 MinGW 上打印名称时出现问题。在 GDC 中打印这些标识符的代码如下所示: sprintf(name, "_D%lluTypeInfo_%s6__initZ", (unsigned long long) 9 + len, buf.data); 所以 OutBuffersprintf 有问题。我将不得不进行更多调试以找到真正的问题。

错误报告:http://bugzilla.gdcproject.org/show_bug.cgi?id=201