首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >D编程语言:模块stdio无法读取文件std\stdio.d

D编程语言:模块stdio无法读取文件std\stdio.d
EN

Stack Overflow用户
提问于 2010-08-29 06:44:54
回答 1查看 3.3K关注 0票数 12

我安装了dmd (2.0 ?)使用windows安装程序,我正在尝试编译以下程序:

代码语言:javascript
复制
module tcpechoserver;

import std.stdio;

const int MAXPENDING = 5;

int main(char[][] argv)
{
    if(argv.length != 2){
        writef("Usage: %s <port>", argv[0]);
    }

    return 0;
}   

但我得到以下编译器错误:

代码语言:javascript
复制
Error: module stdio cannot read file 'std\stdio.d'

为了让标准库正常工作,我需要指定一些路径吗?

EN

回答 1

Stack Overflow用户

发布于 2010-08-29 17:57:53

当您收到这样的错误时,这意味着DMD找不到导入文件。如果您使用import foo.bar.xyz,那么它会期望在某个目录foo\bar\中找到一个xyz.d

它在其所有标准导入路径以及当前目录中搜索此目录(例如,如果您在tcpechoserver.d旁边添加了一个包含stdio.d的目录std,则它将使用该目录)。当然,这不是您想要的--您需要标准的stdio.d

您可以通过打开该文件来查找它所在的目录

C:\D\dmd2\windows\bin\sc.ini (假设您已安装到默认目录)。

在这里面,它应该包含下面这行:

DFLAGS="-I%@P%\..\..\src\phobos" "-I%@P%\..\..\src\druntime\import"

它告诉编译器在查找导入目录时搜索这些路径。如果由于某种原因没有该行(或者该行不同),那么可以尝试将该行添加到sc.ini中( [Environment]标头下的任何位置都可以)。

还要确保dmd2目录包含\src\phobos\std\stdio.d文件。

如果这两个都不起作用,那么我建议从头开始重新安装。

票数 8
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3592788

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档