Ich habe ein Projekt, das eine DLL aufbaut, diese DLL wird aber im $(IntDir) durch den Linker erzeugt (der komlette Pfad ist $(IntDir)$(TargetName)$(TargetExt)).
Die finale DLL wird durch einen "Custom Build Step" erzeugt, die die Ausgabe des Linkers von $(IntDir)$(TargetName)$(TargetExt) benutzt und diese in gewisser Weise nachbearbeitet und letzten Endes dann das finale Target in $(OutDir)$(TargetName)$(TargetExt)
erzeugt.
Diese Datei ist mein finales Target!
Sicher stimmt: MSB8012! The linker output is not my target path:
C:\Program
Files\MSBuild\Microsoft.Cpp\v4.0\Microsoft.CppBuild.targets(990,5):
warning MSB8012:
TargetPath(C:\Projects\Core\xyz\..\..\Bin\Debug\xyzD.dll) does not match
the Linker's OutputFile property value
(C:\Projects\Core\xyz\Debug\xyzD.dll). This may cause your project to
build incorrectly. To correct this, please make sure that $(OutDir),
$(TargetName) and $(TargetExt) property values match the value specified
in %(Link.OutputFile).
Aber es ist ja genau was ich will!
Der Linker produziert eben nur eine DLL die erst durch den custom Build step endgültig aufbereitet wird. Alles ist soweit OK aber diese Warnung wird immer gefeuert und der Build wird immer neu vollzogen!
Kann ich diesen Fehler ignorieren?
Kann man das Ziel DoLinkOutputFilesMatch umgehen oder ignorieren?
Kann man es überschreiben ohne sie zu löschen?
Martin Richter -- MVP for VC++ [Germany] -- http://blog.m-ri.de