2010-08-28 13 views
11

he instalado DMD (2,0?) Usando el instalador de Windows y estoy tratando de compilar el programa siguiente:D lenguaje de programación: stdio módulo no puede leer el archivo std stdio.d

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; 
} 

Pero me sale el siguiente compilador error:

Error: module stdio cannot read file 'std\stdio.d' 

¿Hay algunas rutas que debo especificar para que funcione la biblioteca estándar?

+0

Por favor, después de la salida de la compilación con '-V' DMD – Bernard

+0

C:.. \ esperanza \ D> DMD tcpechoserver.d - v parse tcpechoserver importall tcpechoserver objeto de importación (C: \ D \ bin \ .. \ import \ object.di) import std.stdio (std \ stdio.d) tcpechoserver.d (3): Error: el módulo stdio no puede leer el archivo 'std \ stdio.d ' – lowerkey

Respuesta

5

Mire el archivo ~\windows\bin\sc.ini en su directorio de instalación dmd. Contiene los argumentos de línea de comandos implícitos para la DMD, que deben mirar como esta para la DMD 2,048:

LIB="%@P%\..\lib";\dm\lib

y

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

Si ellos están bien, y no lo hace las obras, su instalación es probablemente roto . Te recomiendo que simplemente descargues la versión comprimida del compilador y la desempaques sobre tu instalación.

8

Cuando recibe errores como ese, significa que DMD no puede encontrar el archivo de importación. Si import foo.bar.xyz, espera que encuentre un xyz.d en algún directorio foo\bar\.

Se busca a este directorio en todas sus rutas globales de importación, así como el directorio actual (por ejemplo, si se ha añadido un directorio std al lado de su tcpechoserver.d con un stdio.d en él, entonces se usaría eso). Por supuesto, no desea eso; desea el estándar stdio.d.

puede encontrar qué directorios se ve que al abrir el archivo

C:\D\dmd2\windows\bin\sc.ini (asumiendo que ha instalado en el directorio predeterminado).

Dentro de eso, debería contener la línea:

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

que se indica al compilador para buscar esos caminos en la búsqueda de directorios de importación. Si usted no tiene esa línea por cualquier razón (o si la línea es diferente), entonces trate de añadir esta línea en sc.ini (en cualquier lugar bajo el encabezado [Environment] debe hacer.

También asegúrese de que el directorio contiene un archivo dmd2\src\phobos\std\stdio.d.

Si tanto estos no funcionan, entonces se lo recomiendo volver a instalar desde cero

Cuestiones relacionadas