我试着用GDC编译D程序。我目前使用的是Windows SP3,我使用从这里下载的“X86 32位(i 686-W64-mingw32)”包:http://gdcproject.org/downloads (底部的链接)。因此,当我解压缩二进制文件并调用gdc编译这样一个简单的程序时:
import std.stdio;
void main() {
writeln("Hello World. ");
}我收到了一堆汇编程序错误:
http://pastebin.com/1kwU10Tz
我知道链接上写着“不支持的alpha构建”,但我不太明白这条消息的意思(也许你可以告诉我)。但是,尽管如此,我还是尝试从存档中下载早期版本,但都失败了,出现了类似的错误。
有办法解决这个问题吗?还是我错过了一些关键点。
编辑:下面是编译器生成的程序集代码:http://pastebin.com/w5q0rNNd
发布于 2015-10-26 18:04:23
GDC窗口构建是真的坏了。对于最新的版本,我们只检查代码是否编译。我们甚至没有为这些版本做过烟雾测试。我们没有适当测试MinGW端口的工具,只要不能正确测试,就没有必要完成端口。我希望这会在今年晚些时候有所改变,但我不会承诺任何事情;-)目前,我从gdcproject页面删除了下载链接。
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有一些问题。我需要做更多的调试才能找到真正的问题。
Bug报告:bug.cgi?id=201
https://stackoverflow.com/questions/33345452
复制相似问题