D issues are now tracked on GitHub. This Bugzilla instance remains as a read-only archive.
Issue 13452 - VisualD keeps linking freshly built project
Summary: VisualD keeps linking freshly built project
Status: RESOLVED FIXED
Alias: None
Product: D
Classification: Unclassified
Component: visuald (show other issues)
Version: D2
Hardware: x86_64 Windows
: P1 normal
Assignee: No Owner
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2014-09-10 07:03 UTC by Orhun Birsoy
Modified: 2015-01-01 22:05 UTC (History)
1 user (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this issue.
Description Orhun Birsoy 2014-09-10 07:03:58 UTC
VisualD keeps linking freshly built project. After enabling "Show why a target is rebuilt", I get the following output.
"Debug\ConsoleApp2.exe not up to date: link dependency file C:\Development\D\ConsoleApp2\ConsoleApp2\Debug\ConsoleApp2.lnkdep does not exist"

I am using Dmd 2.066.0, VS 2013 with Visual D 0.3.39-beta3.

If I create an empty lnkdep file everything seems to be fine.
Comment 1 Rainer Schuetze 2014-10-10 15:05:12 UTC
The lnkdep file is the output of a dependency-tracker that tries to figure out what libraries the linker is actually using.

Unfortunately it does not work with the 64-bit version of the MS linker. I think you might call it when using the D installer and allowing it to modify sc.ini.

Have you tried the "override linker settings in sc.ini" option (Tools->Option->Projects and Solutions->Visual D Settings->DMD directories->x64) to switch to the 32-bit linker?

If that does not help, you can disable "Monitoring OPTLINK dependencies" on the "Visual D settings" page.
Comment 2 Orhun Birsoy 2014-10-13 15:36:08 UTC
(In reply to Rainer Schuetze from comment #1)
> The lnkdep file is the output of a dependency-tracker that tries to figure
> out what libraries the linker is actually using.
> 
> Unfortunately it does not work with the 64-bit version of the MS linker. I
> think you might call it when using the D installer and allowing it to modify
> sc.ini.
> 
> Have you tried the "override linker settings in sc.ini" option
> (Tools->Option->Projects and Solutions->Visual D Settings->DMD
> directories->x64) to switch to the 32-bit linker?
> 
> If that does not help, you can disable "Monitoring OPTLINK dependencies" on
> the "Visual D settings" page.

"override linker settings in sc.ini" is checked and set to "$(VCINSTALLDIR)\bin\link.exe" and I am still getting the same message. 
But disabling "Monitoring OPTLINK dependencies" option worked.
Thanks.
Comment 3 Rainer Schuetze 2014-10-13 17:48:58 UTC
I discovered a problem in the dependency tracker that didn't show up in earlier versions (or maybe some OS updates slightly changed calling order within undocumented behaviour).

I'll start the next beta cycle with a fix soon.
Comment 4 Rainer Schuetze 2014-10-16 07:03:44 UTC
I have uploaded a new beta with a fix here: https://github.com/D-Programming-Language/visuald/releases/tag/v0.3.40-beta1
Comment 5 Rainer Schuetze 2014-12-20 11:03:52 UTC
The latest version now uses the tracker from MSBuild instead of the filemonitor.dll. This should work better for all architectures. 

Try it in https://github.com/D-Programming-Language/visuald/releases/tag/v0.3.40-beta4
Comment 6 Rainer Schuetze 2015-01-01 22:05:00 UTC
fix released in 0.3.40.