Я работаю в Visual Studio 2010, и я могу хорошо написать и написать код, и IntelliSense даже хорошо работает, но когда я запускаю компилятор после изменения кода, изменения не всегда происходят. это происходит в консольных приложениях c ++ Win32, приложениях c ++ Windows и консольных приложениях c ++ CLR. Это даже случалось и в C # XNA.
Я имею в виду, что я начну кодировать новую программу и писать код, а затем переходить к сборке для проверки ошибок, а затем запускать программу, и она будет работать нормально (если ошибок не было). но потом, если я захочу повторить код, чтобы добавить реализуемые мной функции (некоторые из которых должны значительно изменить вывод), это будет так, как если бы это было при первой сборке. также, если я вставляю точки останова, они не всегда берутся так, как будто их тоже игнорируют (за исключением тех, которые были в нетронутых файлах). хотя, когда я собираюсь в это время строить, компилятор выдает ошибки правильно (вставлено целенаправленно и случайно), и только в этих точках он принимает все изменения.
Единственный обходной путь, который я нашел, - это идти и делать полную перестройку после каждой модификации, но в этом нет необходимости, поскольку я не добавляю заголовки или не изменяю порядок компиляции. иногда он игнорирует изменение одного символа, изменяемого в cout.
Резюме:
- компилятор игнорирует изменения, сделанные со времени последней сборки
- компилятор игнорирует точки останова в измененных файлах
- необходимо выполнить полное перестроение, чтобы внести изменения, и точки останова потребуются.
есть ли у кого-нибудь какие-либо мысли по этому поводу?
edit: похоже, что изменение Tools> options> "Projects and Solutions"> "Build and Run"> "On Run, когда проекты устарели" на "Prompt to build" решает проблему. хотя раздражает, когда каждый раз спрашивают, это менее раздражает, чем необходимость вручную перестраивать. необходимо выполнить дальнейшие итерации, чтобы увидеть, не является ли это поверхностным.
edit2: после продолжения итерации по текущему проекту выясняется, что это изменение не решает проблему, а касается только основного файла, а любые вложенные файлы по-прежнему нуждаются в полной перестройке для внесения изменений, даже небольших.