Re: Illegal Filename after basic install and trying Hello World
On Wednesday, June 26, 2019 8:39:09 AM MDT Nicholas Wilson via Digitalmars- d-learn wrote: > On Wednesday, 26 June 2019 at 13:57:22 UTC, Gilbert Fernandes > > None do help. The option "override linker settings from sc.ini" > > it may be called dmd.conf (it is on my Mac, but the windows may > be different) On Windows, it's sc.ini, whereas it's dmd.conf on every other platform. I have no clue why Windows is different from the rest. - Jonathan M Davis
Re: Illegal Filename after basic install and trying Hello World
After removing all paths to the linker, the error has changed : -- Build started: Project: Test2, Configuration: Debug x64 -- Building x64\Debug\Test2.exe... TRACKER : error TRK0005: ‚chec de localisation deÿ: "@D:\sources_D\Test2\Test2\x64\Debug\Test2.link.rsp". Le fichier sp‚cifi‚ est introuvable. Building x64\Debug\Test2.exe failed! Details saved as "file://D:\sources_D\Test2\Test2\x64\Debug\Test2.buildlog.html" == Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped == I have checked if the rsp file does exist at the indicated path, and it seems so : D:\>dir D:\sources_D\Test2\Test2\x64\Debug\Test2.link.rsp Répertoire de D:\sources_D\Test2\Test2\x64\Debug 26/06/2019 16:43 590 Test2.link.rsp 1 fichier(s) 590 octets 0 Rép(s) 62 739 664 896 octets libres I don't know why but I'm not gonna spend more time on this. The "dmd" command works fine on command line. So I'm gonna use Visual Studio Code + use command-line commands Will make using git easier anyway. Thanks for the help. I'd rather spend time on learning D than fixing VS weird way to work :p
Re: Illegal Filename after basic install and trying Hello World
On Wednesday, 26 June 2019 at 13:57:22 UTC, Gilbert Fernandes wrote: I am using VS 2019 into which I have C# and C++ active. Installed the following : DMD 2.086.1 then Visual D 0.50.0 DMD has been installed at the base of C:\ at C:\D Created a D project, which contains a default Hello world program. Build fails. Running the program fails. VS displays the following error : -- Build started: Project: Test2, Configuration: Debug x64 -- Building x64\Debug\Test2.exe... OPTLINK (R) for Win32 Release 8.00.17 Copyright (C) Digital Mars 1989-2013 All rights reserved. http://www.digitalmars.com/ctg/optlink.html OPTLINK : Error 8: Illegal Filename == Build: 1 succeeded, 0 failed, 0 up-to-date, 0 skipped == Besides installing Visual D and creating a new project, done nothing. I have searched the forum for people with the same problem and found two threads. https://forum.dlang.org/post/poq048$28mm$1...@digitalmars.com https://forum.dlang.org/post/xmhkgkqujxmzruque...@forum.dlang.org None do help. The option "override linker settings from sc.ini" it may be called dmd.conf (it is on my Mac, but the windows may be different) is nowhere it seems. I have checked both inside the current project properties, and VS settings themselves. I have the following cmd to build the program in the folder : set PATH=C:\Program Files (x86)\Visual Studio\VC\bin;C:\Program Files (x86)\Visual Studio\Common7\IDE;C:\Program Files (x86)\Windows Kits\10\bin;C:\D\dmd2\windows\bin;%PATH% set DMD_LIB=C:\Program Files (x86)\Visual Studio\VC\lib\amd64 set VCINSTALLDIR=C:\Program Files (x86)\Visual Studio\VC\ set VCTOOLSINSTALLDIR=C:\Program Files (x86)\Visual Studio\VC\Tools\MSVC\14.21.27702\ set VSINSTALLDIR=C:\Program Files (x86)\Visual Studio\ set WindowsSdkDir=C:\Program Files (x86)\Windows Kits\10\ set WindowsSdkVersion=10.0.17763.0 set UniversalCRTSdkDir=C:\Program Files (x86)\Windows Kits\10\ set UCRTVersion=10.0.17763.0 "C:\Program Files (x86)\VisualD\pipedmd.exe" -deps x64\Debug\Test2.dep dmd -m64 -g -gf -debug -X -Xf"x64\Debug\Test2.json" -c -of"x64\Debug\Test2.obj" Test2.d if %errorlevel% neq 0 goto reportError set LIB=C:\D\dmd2\windows\bin\..\lib64 echo. > D:\sources_D\Test2\Test2\x64\Debug\Test2.link.rsp echo "x64\Debug\Test2.obj" /OUT:"x64\Debug\Test2.exe" user32.lib >> D:\sources_D\Test2\Test2\x64\Debug\Test2.link.rsp echo kernel32.lib >> D:\sources_D\Test2\Test2\x64\Debug\Test2.link.rsp echo legacy_stdio_definitions.lib /LIBPATH:"C:\Program Files (x86)\Visual Studio\VC\lib\amd64" /DEBUG /PDB:"x64\Debug\Test2.pdb" /INCREMENTAL:NO /NOLOGO /noopttls /NODEFAULTLIB:libcmt libcmtd.lib /SUBSYSTEM:CONSOLE >> D:\sources_D\Test2\Test2\x64\Debug\Test2.link.rsp "C:\Program Files (x86)\VisualD\mb2utf16.exe" D:\sources_D\Test2\Test2\x64\Debug\Test2.link.rsp "C:\Program Files (x86)\VisualD\pipedmd.exe" -msmode -deps x64\Debug\Test2.lnkdep C:\D\dmd2\windows\bin\link.exe @D:\sources_D\Test2\Test2\x64\Debug\Test2.link.rsp if %errorlevel% neq 0 goto reportError if not exist "x64\Debug\Test2.exe" (echo "x64\Debug\Test2.exe" not created! && goto reportError) goto noError :reportError echo Building x64\Debug\Test2.exe failed! :noError Typing "link" seems to launch the D Optilink Linker by default on my CMD. If I understand properly, I should be using the VS C++ supplied linker ? Correct. You have VS, so it is of no use to you. Use the VS one instead of C:\D\dmd2\windows\bin\link.exe in your build file. You can just delete the wrong link.exe any hopefully it will pick up the correct one in the $PATH. Also any reason why you (or is that visualD doing that? )are manually invoking the linker? Omit -c and dmd will invoke the linker for you (hopefully the correct one).
Illegal Filename after basic install and trying Hello World
I am using VS 2019 into which I have C# and C++ active. Installed the following : DMD 2.086.1 then Visual D 0.50.0 DMD has been installed at the base of C:\ at C:\D Created a D project, which contains a default Hello world program. Build fails. Running the program fails. VS displays the following error : -- Build started: Project: Test2, Configuration: Debug x64 -- Building x64\Debug\Test2.exe... OPTLINK (R) for Win32 Release 8.00.17 Copyright (C) Digital Mars 1989-2013 All rights reserved. http://www.digitalmars.com/ctg/optlink.html OPTLINK : Error 8: Illegal Filename == Build: 1 succeeded, 0 failed, 0 up-to-date, 0 skipped == Besides installing Visual D and creating a new project, done nothing. I have searched the forum for people with the same problem and found two threads. https://forum.dlang.org/post/poq048$28mm$1...@digitalmars.com https://forum.dlang.org/post/xmhkgkqujxmzruque...@forum.dlang.org None do help. The option "override linker settings from sc.ini" is nowhere it seems. I have checked both inside the current project properties, and VS settings themselves. I have the following cmd to build the program in the folder : set PATH=C:\Program Files (x86)\Visual Studio\VC\bin;C:\Program Files (x86)\Visual Studio\Common7\IDE;C:\Program Files (x86)\Windows Kits\10\bin;C:\D\dmd2\windows\bin;%PATH% set DMD_LIB=C:\Program Files (x86)\Visual Studio\VC\lib\amd64 set VCINSTALLDIR=C:\Program Files (x86)\Visual Studio\VC\ set VCTOOLSINSTALLDIR=C:\Program Files (x86)\Visual Studio\VC\Tools\MSVC\14.21.27702\ set VSINSTALLDIR=C:\Program Files (x86)\Visual Studio\ set WindowsSdkDir=C:\Program Files (x86)\Windows Kits\10\ set WindowsSdkVersion=10.0.17763.0 set UniversalCRTSdkDir=C:\Program Files (x86)\Windows Kits\10\ set UCRTVersion=10.0.17763.0 "C:\Program Files (x86)\VisualD\pipedmd.exe" -deps x64\Debug\Test2.dep dmd -m64 -g -gf -debug -X -Xf"x64\Debug\Test2.json" -c -of"x64\Debug\Test2.obj" Test2.d if %errorlevel% neq 0 goto reportError set LIB=C:\D\dmd2\windows\bin\..\lib64 echo. > D:\sources_D\Test2\Test2\x64\Debug\Test2.link.rsp echo "x64\Debug\Test2.obj" /OUT:"x64\Debug\Test2.exe" user32.lib >> D:\sources_D\Test2\Test2\x64\Debug\Test2.link.rsp echo kernel32.lib >> D:\sources_D\Test2\Test2\x64\Debug\Test2.link.rsp echo legacy_stdio_definitions.lib /LIBPATH:"C:\Program Files (x86)\Visual Studio\VC\lib\amd64" /DEBUG /PDB:"x64\Debug\Test2.pdb" /INCREMENTAL:NO /NOLOGO /noopttls /NODEFAULTLIB:libcmt libcmtd.lib /SUBSYSTEM:CONSOLE >> D:\sources_D\Test2\Test2\x64\Debug\Test2.link.rsp "C:\Program Files (x86)\VisualD\mb2utf16.exe" D:\sources_D\Test2\Test2\x64\Debug\Test2.link.rsp "C:\Program Files (x86)\VisualD\pipedmd.exe" -msmode -deps x64\Debug\Test2.lnkdep C:\D\dmd2\windows\bin\link.exe @D:\sources_D\Test2\Test2\x64\Debug\Test2.link.rsp if %errorlevel% neq 0 goto reportError if not exist "x64\Debug\Test2.exe" (echo "x64\Debug\Test2.exe" not created! && goto reportError) goto noError :reportError echo Building x64\Debug\Test2.exe failed! :noError Typing "link" seems to launch the D Optilink Linker by default on my CMD. If I understand properly, I should be using the VS C++ supplied linker ? Inside VS settings I have the following in the DMD Directories : Win32 Executable Paths : $(VCINSTALLDIR)bin $(VSINSTALLDIR)Common7\IDE $(WindowsSdkDir)bin $(DMDInstallDir)windows\bin x64 has the same ones, but a library path defined : $(VCINSTALLDIR)lib\amd64 And the following linker is defined : C:\D\dmd2\windows\bin\link.exe I don't know how to fix this. Should this work after a basic Visual D install or there are some configurations steps I missed ?