2015-04-30 7 views
1

Я установил Visual D несколько минут назад (я хотел дать языку тестовый диск) и, используя встроенный пример консоли, попытался его создать и запустить. Вот код, который Visual Studio создается для меня:Не удается создать/запустить VisualC Console Пример

import std.stdio; 

int main(string[] argv) 
{ 
    writeln("Hello D-World!"); 
    return 0; 
} 

А вот ошибка сборки, что я получил:

------ Build started: Project: TestingDApp, Configuration: Debug Win32 ------ 
Building Debug\TestingDApp.exe... 
C:\D\dmd2\windows\bin\..\..\src\phobos\std\range.d(287): Error: module std.range from file C:\D\dmd2\windows\bin\..\..\src\phobos\std\range.d conflicts with package name range 
C:\D\dmd2\windows\bin\..\..\src\phobos\std\range.d(287): Error: module std.range from file C:\D\dmd2\windows\bin\..\..\src\phobos\std\range.d conflicts with package name range 
C:\D\dmd2\windows\bin\..\..\src\phobos\std\array.d(1480): Error: undefined identifier 'iteration' 
Assertion failure: 'type->ty != Tstruct || ((TypeStruct *)type)->sym == this' on line 929 in file 'struct.c' 
Building Debug\TestingDApp.exe failed! 
Details saved as "file://C:\Users\Krythic\Desktop\TestingRoot\TestingDApp\TestingDApp\Debug\TestingDApp.buildlog.html" 
========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ========== 

Ой, а вот то, что «сохранены детали, как» распечатан:

Build Log 
Building Debug\TestingDApp.exe 
Command Line 
set PATH=C:\D\dmd2\windows\bin;C:\Program Files (x86)\Microsoft Visual Studio 12.0\\Common7\IDE;C:\Program Files (x86)\Windows Kits\8.1\\bin;%PATH% 
dmd -g -debug -X -Xf"Debug\TestingDApp.json" -deps="Debug\TestingDApp.dep" -c -of"Debug\TestingDApp.obj" main.d 
if errorlevel 1 goto reportError 

set LIB="C:\D\dmd2\windows\bin\..\lib" 
echo. > C:\Users\Krythic\Desktop\TestingRoot\TestingDApp\TestingDApp\Debug\TestingDApp.build.lnkarg 
echo "Debug\TestingDApp.obj","Debug\TestingDApp.exe_cv","Debug\TestingDApp.map",user32.lib+ >> C:\Users\Krythic\Desktop\TestingRoot\TestingDApp\TestingDApp\Debug\TestingDApp.build.lnkarg 
echo kernel32.lib/NOMAP/CO/NOI/DELEXE >> C:\Users\Krythic\Desktop\TestingRoot\TestingDApp\TestingDApp\Debug\TestingDApp.build.lnkarg 

"C:\Program Files (x86)\VisualD\pipedmd.exe" -deps Debug\TestingDApp.lnkdep C:\D\dmd2\windows\bin\link.exe @C:\Users\Krythic\Desktop\TestingRoot\TestingDApp\TestingDApp\Debug\TestingDApp.build.lnkarg 
if errorlevel 1 goto reportError 
if not exist "Debug\TestingDApp.exe_cv" (echo "Debug\TestingDApp.exe_cv" not created! && goto reportError) 
echo Converting debug information... 
"C:\Program Files (x86)\VisualD\cv2pdb\cv2pdb.exe" "Debug\TestingDApp.exe_cv" "Debug\TestingDApp.exe" 
if errorlevel 1 goto reportError 
if not exist "Debug\TestingDApp.exe" (echo "Debug\TestingDApp.exe" not created! && goto reportError) 

goto noError 

:reportError 
echo Building Debug\TestingDApp.exe failed! 

:noError 
Output 
C:\D\dmd2\windows\bin\..\..\src\phobos\std\range.d(287): Error: module std.range from file C:\D\dmd2\windows\bin\..\..\src\phobos\std\range.d conflicts with package name range 
C:\D\dmd2\windows\bin\..\..\src\phobos\std\range.d(287): Error: module std.range from file C:\D\dmd2\windows\bin\..\..\src\phobos\std\range.d conflicts with package name range 
C:\D\dmd2\windows\bin\..\..\src\phobos\std\array.d(1480): Error: undefined identifier 'iteration' 
Assertion failure: 'type->ty != Tstruct || ((TypeStruct *)type)->sym == this' on line 929 in file 'struct.c' 
Building Debug\TestingDApp.exe failed! 

Когда я строю приложение я получаю окно сообщения, которое говорит:

enter image description here

Кто-нибудь знает, что я мог сделать неправильно?

+1

У вас есть новая установка компилятора? Кажется, что там может быть несоответствие версий. Несколько версий назад, range.d был одним файлом. Теперь это папка с кучей файлов. Возможно, новая папка распаковалась, и старый файл остался, теперь возник конфликт. Я попытался бы удалить старую папку dmd2 и заменить ее новой новой версией. –

+0

@ AdamD.Ruppe Я сделал новую установку после удаления всего. На этот раз я получил другой вариант в новом разделе проекта, который содержал «dmd» в конце. Я предполагаю, что в первый раз, когда я его установил, он неправильно установил компилятор. Тем не менее, теперь я работаю. – Krythic

ответ

1

Написание комментария в качестве ответа, поскольку оно, похоже, решило проблему: старую установку компилятора и библиотеки пришлось удалить, а поверх нее была добавлена ​​новая новая версия.

Оказалось, что старый range.d был заменен новым диапазоном/папкой в ​​последней версии библиотеки, но при установке новой версии сохранился старый файл. Итак, компилятор запутался: предполагается ли использовать папку или файл? Не удаляет + переустанавливает очистку, удаляя старый файл, оставляя только новое.

+0

Проблема была на самом деле потому, что я проверил версии компилятора BOTH и по какой-то причине новая настройка подписалась на устаревший компилятор. Чтобы исправить это, я убедился, что не старую отметку старого компилятора во время установки. – Krythic

Смежные вопросы