D语言新手问题 我发现了,Windows平台下压根就不能用core.thread

· Created · Last modified by 陈浩天 replied at · 200 times read

不知道是我编译器版本的问题还是官方疏忽,就这样一段简单的代码

import core.thread;     
import std.stdio: write, writeln, writef, writefln;     
void main(){
    new Thread({         // Codes to run in the newly created thread.         
        writeln("Hello World!");
    }).start();
}

在Windows平台上面编译失败,但在其他平台都是正常通过的。
报错显示
Error 42: Symbol Undefined __D4core6thread6Thread5startMFNbZCQBfQBdQz

这是我在用thread.sleep的时候发现的,当时还奇怪了好久,用了core.sys.windows.winbase里面的Sleep就没问题。后来发现是这句代码压根就不能在Windows平台上面用。。。

就算你是平台特定代码吧,你的包名也不是core.unix.thread,搞得大家还以为你这是通用代码,新手见到这种代码直接被劝退,明明自己就是按照官方教程来的怎么会出错呢?这就是D语言火不起来的原因。。。目前的莫名其妙的错误太多了,可怜的新手无法学习。。。

当然我还是喜欢D语言:)

我这里没问题
windows 10 64bit
D 2.092.0

找到原因了,2.091.0这个版本是有bug的[无语]

Login to reply