Archivo ejecutable no reconstruido pero archivos de objeto recompilados
Construyendo un proyecto básico de C ++ con Visual Studio 2012. Cuando hago cambios a los archivos de origen:
Se compilan los archivos objeto correspondientes.Los archivos .tlog para el compilador se actualizan.el archivo PDB se actualizaLos archivos .tlog para el enlazador sin embargo no se cambianel enlazador reclamaAll outputs are up-to-date.
y no construye un nuevo ejecutable.La única manera de hacer que el ejecutable sea construido es eliminándolo. Parece que algo con el sistema de seguimiento está mal y me preguntaba si alguien puede arrojar algo de luz sobre este tema.
Aquí está la salida de msbuild después de cambiar dos archivos, rutas completas y algunas otras cosas omitidas (esta salida es para el conjunto de herramientas VS2010, pero 2012 se comporta de la misma manera):
1>Target "ClCompile" in file "C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\Platforms\Win32\Microsoft.Cpp.Win32.targets"...
Using "CL" task from assembly "Microsoft.Build.CppTasks.Win32, Version=4.0.0.0...
Task "CL"
Read Tracking Logs:
cl.read.1.tlog
CL.2520.read.1.tlog
...
Outputs for ....
XXX.OBJ
YYY.OBJ
...
xxx.cpp will be compiled as xxx.cpp was modified...
yyy.cpp will be compiled as yyy.cpp was modified...
Write Tracking Logs:
cl.write.1.tlog
CL.2520.write.1.tlog
...
C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\bin\CL.exe ....
Tracking command:
C:\Program Files (x86)\Microsoft SDKs\Windows\v8.0A\bin\NETFX 4.0 Tools\Tracker.exe ....
xxx.cpp
yyy.cpp
Done executing task "CL".
1>Done building target "ClCompile" in project "xxx.vcxproj".
hasta ahora tan bueno. Ahora el enlazador entra en acción (bueno, no lo hace):
1>Target "Link" in file "C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\Platforms\Win32\Microsoft.Cpp.Win32.targets"....
Using "Link" task from assembly "Microsoft.Build.CppTasks.Win32, Version=4.0.0.0...
Task "Link"
Using cached output dependency table built from:
link.write.1.tlog
Using cached input dependency table built from:
ink.read.1.tlog
Outputs for ....
MY.EXE
MY.PDB
All outputs are up-to-date.
Done executing task "Link".
Task "Message"
xxx.vcxproj -> my.exe
Done executing task "Message".
1>Done building target "Link" in project "xxx.vcxproj".