Visual C ++ проблема сборки / отладки - PullRequest
4 голосов
/ 29 октября 2011

У меня странная проблема с Visual Studio. Всякий раз, когда я изменяю свой код и собираюсь, даже если я получаю уведомление, что сборка была успешной (и если она есть, она также показывает ошибки в коде и не собирает), исполняемый файл фактически является предыдущей сборкой. Это становится действительно раздражающим и расстраивающим.

Если я ставлю точку останова на новые строки, точка останова отключается и выдает

Точка останова в настоящее время не будет достигнута. Нет исполняемого кода связано с этой линией. Возможные причины включают в себя: препроцессор директива или оптимизация компилятора / компоновщика

Если я ставлю точку останова на старые строки кода, она останавливает обработку, но показывает мне это сообщение

Источник отличается от того, когда был построен модуль. Хотели бы отладчик, чтобы использовать его в любом случае?

У меня никогда не было этой проблемы раньше, и исходный код был на жестком диске моего ноутбука. Это экономит сразу. Единственный способ обойти это, чтобы Clean все решение вручную каждый раз вместо того, чтобы нажимать F5.

Ответы [ 6 ]

2 голосов
/ 31 октября 2011

Спасибо всем за их предложения.Моя ошибка состояла в том, что я определил классы внутри .cpp файлов, это каким-то образом заставило компоновщик делать странные (возможно, кеширующие) вещи и связывать старые объекты.Я переименовал файл в .h и все работает как положено.

0 голосов
/ 05 августа 2012

Я столкнулся с той же проблемой. Но причина была не как у тебя. Затем я просто перезапустил визуальную студию, и она заработала, как и ожидалось.

0 голосов
/ 09 декабря 2011

Я искал ответ на этот вопрос, так как я тоже застрял с ним.Мой коллега только что дал мне решение, которое работает.Да, это кажется действительно глупым, но это помогло мне.

Наше решение имеет много проектов.Он сказал мне выбрать проект, в который я хочу ворваться, и установить его в качестве запускаемого проекта (щелкните правой кнопкой мыши имя проекта и выберите «Сделать стартовым проектом»).Я был в отчаянии, поэтому я попытался.К моему изумлению, это работает.

Поскольку у меня открылось это окно, я решил поделиться им на случай, если кто-то еще столкнется с проблемой.

0 голосов
/ 30 октября 2011

Возможно, вы установили основной проект для какого-то другого проекта и строите его. Сделайте ваш проект, над которым вы хотите работать, «Основным проектом», установив основной проект в строке меню.

0 голосов
/ 30 октября 2011

Я думаю, что вы используете исходные файлы из другого проекта (например: если вы используете dll скажем, my.dll (который был построен с использованием некоторых исходных файлов, скажем, mycpp.cpp); в вашем текущем проекте). Когда вы отладили файл (mycpp.cpp), возможно, вы изменили его.

Следовательно, вам нужно сначала перестроить dll (my.dll) в проекте, в котором вы создали my.dll. Или же Может быть, вы открыли экземпляр mycpp.cpp в окне и отладки в другом окне. Вы должны восстановить DLL.

Если вы не используете файлы из другого проекта, то я не могу угадать причину ... но я все же рекомендую использовать rebuild вместо clean & build .

пожалуйста, уточните свой вопрос немного. @ Дэвид ждет от тебя ответа ...

0 голосов
/ 29 октября 2011

Возможно, ваш код не построен или построен не так, как вы ожидаете.

Вы можете проверить, вставив куда-нибудь директиву препроцессора #error foobar. Если при сборке не отображается ошибка, значит, у вас проблемы!

Но я никогда не использовал Visual Studio (я использую только Linux), поэтому больше ничего не могу поделать.

...