Исполняемый файл не перестроен, но объектные файлы перекомпилированы
Создание базового проекта C ++ с помощью Visual Studio 2012. Когда я делаю изменения в исходных файлах:
the corresponding object files are compiled the .tlog files for the compiler are updated the PDB file is updated the .tlog files for the linker however are not changed the linker claimsAll outputs are up-to-date.
and does not build a new executable.
Единственный способ получить исполняемый файл - это удалить его. Кажется, что-то с системой отслеживания не так, и мне было интересно, если кто-нибудь может пролить свет на эту проблему.
Вот вывод msbuild после того, как я изменил два файла, полные пути и некоторые другие вещи пропущены (этот вывод для набора инструментов VS2010, но 2012 ведет себя так же):
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".
Все идет нормально. Теперь включается компоновщик (ну, это не так):
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".