none
Falsche MSB8012 Meldung RRS feed

  • Frage

  • 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
    Donnerstag, 29. Juli 2010 06:53
    Moderator