无法使用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. ");
}
我遇到了一堆汇编错误:
我知道 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);
所以 OutBuffer
或 sprintf
有问题。我将不得不进行更多调试以找到真正的问题。
我正在尝试使用 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. ");
}
我遇到了一堆汇编错误:
我知道 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);
所以 OutBuffer
或 sprintf
有问题。我将不得不进行更多调试以找到真正的问题。