Linking issues VisualD generated vs Dub generated projects

Rainer Schuetze r.sagitario at gmx.de
Tue Dec 3 07:31:55 UTC 2019



On 01/12/2019 23:49, ShadoLight wrote:
> On Saturday, 30 November 2019 at 08:53:32 UTC, Rainer Schuetze wrote:
[...]
>> As the Windows SDK environment variable is usually not set in the
>> system environment, Visual D mimicks vcvarsall.bat from the VC
>> installation to determine it and uses the first hit:
>>
> Hi Rainer,
> 
> Thanks for the very prompt reply!
> 
> Ok, checking this...
> 
>> - read registry entry HKLM\\SOFTWARE\\Microsoft\\Windows
>> Kits\\Installed Roots\\KitsRoot10 and checks if it has a lib folder
> --> No KitsRoot10 present.
> --> Only KitsRoots present under HKLM\\SOFTWARE\\Microsoft\\Windows
> Kits\\Installed Roots\\:
>         ..\\KitsRoot: C:\Program Files (x86)\Windows Kits\8.0\
>         ..\\KitsRoot81: C:\Program Files (x86)\Windows Kits\8.1\
>>
>> - read registry entry HKLM\\SOFTWARE\\Microsoft\\Microsoft
>> SDKs\\Windows\\v8.1\\InstallationFolder and checks if it has a lib folder
> --> This is close, but no banana! There are 3 SDKs listed under
> KLM\\SOFTWARE\\Microsoft\\Microsoft SDKs\\Windows\\... namely v7.1A,
> v8.0A and v8.1A. But note that it is *v8.1A*, not *v8.1*. But there are
> anyway no lib folder at the registry entry for v8.1A.
> 
>>
>> - read registry entry HKLM\\SOFTWARE\\Microsoft\\Microsoft
>> SDKs\\Windows\\v8.0\\InstallationFolder and checks if it has a lib folder
> --> Same story as previous check.. it has *v8.0A*, not *v8.0*. Also, no
> lib folder present at registry entry for v8.0A.
> 
>>
>> - read registry entry SOFTWARE\\Microsoft\\Microsoft
>> SDKs\\Windows\\CurrentInstallFolder and checks if it has a lib folder
> --> The registry entry is 'C:\Program Files (x86)\Microsoft
> SDKs\Windows\v8.1A\', which has no 'lib' folder.
> 
>>
>> - environment variable WindowsSdkDir
> --> Set to 'C:\Program Files (x86)\Windows Kits\10'according to
> buildlog.html.
>>
>> Could you please check where it gets the "C:\Program Files (x86)\Windows
>> Kits\10" folder from?
> --> I really have no idea, since it does not look like there is any
> 'hit' from the above.
>>
>> Usually, the library search path are set once, and they are not
>> altered automatically later. You can reevaluate the default settings
>> with the "Reset Settings..." button.
> 
> OK, thanks - I will try this.
> 
> On my system it looks like the valid entries were all under
> HKLM\\SOFTWARE\\Microsoft\\Windows Kits\\Installed Roots\\.., so the
> following sequence would have been preferable (still taking the 1st hit):
> 
> - read registry entry HKLM\\SOFTWARE\\Microsoft\\Windows Kits\\Installed
> Roots\\KitsRoot10 and checks if it has a lib folder
> 
> - read registry entry HKLM\\SOFTWARE\\Microsoft\\Windows Kits\\Installed
> Roots\\KitsRoot81 and checks if it has a lib folder
> 
> - read registry entry HKLM\\SOFTWARE\\Microsoft\\Windows Kits\\Installed
> Roots\\KitsRoot80 and checks if it has a lib folder
> 
> - read registry entry HKLM\\SOFTWARE\\Microsoft\\Windows Kits\\Installed
> Roots\\KitsRoot and checks if it has a lib folder
> 
> - read registry entry HKLM\\SOFTWARE\\Microsoft\\Microsoft
> SDKs\\Windows\\v8.1\\InstallationFolder and checks if it has a lib folder
> 
> - read registry entry HKLM\\SOFTWARE\\Microsoft\\Microsoft
> SDKs\\Windows\\v8.0\\InstallationFolder and checks if it has a lib folder
> 
> - read registry entry SOFTWARE\\Microsoft\\Microsoft
> SDKs\\Windows\\CurrentInstallFolder and checks if it has a lib folder
> 
> - environment variable WindowsSdkDir

Thanks for digging through this. I've now added checking all the legacy
SDKs 7/8.0/1(A).

For now, you should be fine with manually setting the library search
path to the respective lib folders of the 7.1A/8.1 SDK.


More information about the Digitalmars-d-ide mailing list