Когда вы получаете такие ошибки, это означает, что DMD не может найти файл импорта. Если вы import foo.bar.xyz
, то он ожидает найти xyz.d
в некотором каталоге foo\bar\
.
Он ищет этот каталог по всем его стандартным путям импорта, а также текущий каталог (например, если вы добавили каталог std
рядом с вашим tcpechoserver.d
с stdio.d
в нем, то он будет используйте это). Конечно, вы этого не хотите - вам нужен стандарт 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
.
Если оба эти метода не работают, я бы рекомендовал переустановить их с нуля.