Visual Studio забывает ошибки компиляции при повторной сборке и снова использует недействительные файлы obj - PullRequest
0 голосов
/ 21 мая 2019

Моя установка Visual Studio не работает так, как мне хотелось бы.Я использую VS 2017 с набором инструментов 2015 года.

Если я, например, внесу критические изменения в один заголовочный файл, который затрагивает несколько файлов cpp, следующая перекомпиляция F7 заставит Visual Studio снова перекомпилировать все эти файлы (и вседругие зависимости он может найти).Список ошибок сборки, таким образом, покажет ошибки для всех этих затронутых файлов, и я могу F8 пройти через них все.

Когда я затем исправлю только некоторые ошибки, сделав соответствующие изменения только в некоторых изфайлы, а затем выполнить перекомпиляцию F7, Visual Studio иногда только перекомпилирует эти измененные файлы.Таким образом, все неизмененные (нефиксированные) файлы больше не будут перекомпилироваться во время второй компиляции.Кажется, что первая компиляция не удаляла соответствующие файлы obj, но вместо этого помечала их в любом случае, так что во второй компиляции она больше не обнаруживает необходимость перекомпилировать эти файлы?Этого не происходит (объекты сохраняют свою старую временную метку), но, похоже, он ведет себя так, как будто он это сделал.

Какой бы ни была причина, это нежелательно во многих отношениях;во-первых, я теряю поддержку F8, чтобы перебрать все нефиксированные ошибки для всех этих других файлов, и, во-вторых (и, конечно, не в последнюю очередь), если сигнатура затронутых функций не изменилась, компоновщик с радостью повторно использует эти старые объекты, что приводит кневерные сборки, которые приводят к случайным сбоям во время выполнения.

Единственный способ восстановить все это - снова прикоснуться к первоначально измененному заголовку, вызывая перекомпиляцию всех зависимых файлов (например, добавить пробел, удалить его снова)., resave,), или выполните очистку / перестройку проекта (что занимает довольно много времени).

Моя установка VS просто сломана?Я не могу себе представить, что это желаемое поведение ... Или это какая-то оптимизация, которая контролируется какими-то настройками, о которых я ничего не знаю, но все еще подправил в прошедшие века?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...