Поиск всех ошибок в проекте Visual Studio C ++ - PullRequest
0 голосов
/ 05 августа 2020

У меня есть проект C ++ в Visual Studio 2019. Как найти все файлы cpp с ошибками компилятора? Когда я создаю решение, компилятор обнаруживает файл с ошибкой, тогда VS объявляет сбой сборки проекта и переходит к другим проектам. Поэтому я получаю только одну из ошибок.

Когда я использую make-файл для сборки, я могу попытаться скомпилировать все измененные файлы, а затем отметить все неудачные. Разве Visual Studio не может сделать то же самое?

========

Я имею в виду, что у меня есть большой проект с файлами a. cpp, b . cpp, c. cpp, в которых я знаю, что b. cpp и c. cpp содержат ошибки. Когда VS строит проект, он обнаруживает ошибку в b. cpp, тогда VS не будет пытаться скомпилировать c. cpp. Результат сборки:

------ Build started:
a.cpp
b.cpp
"xx\xx\xx\b.cpp": error xxx: xxx
Done building project "project1.vcxproj" -- FAILED.

Сборка останавливается до того, как компилятор коснется c. cpp.

И я обнаружил, что это происходит только в моих больших проектах. В моем небольшом проекте VS будет вызывать компилятор для всех файлов cpp. Обычный сценарий: когда я реорганизую некоторые заголовки, мне нужно снова и снова строить проект, исправляя по одному cpp файлу за раз.

1 Ответ

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

Создайте решение «F6», затем посмотрите на свой список ошибок Меню Вид -> Список ошибок (альтернативно, Ctrl + W, E). Затем убедитесь, что на вкладке списка ошибок выбрано «Все решение». В нем будут перечислены все известные ошибки и предупреждения компилятора в вашем проекте. Что касается использования make-файла, вам придется отлаживать конкретно свой Makefile.

Чтобы ответить на ваш второй вопрос, к сожалению, не существует такой вещи, как отладчик make-файла, чтобы проверить, как оценивается конкретное правило или переменная расширена, et c. Вместо этого большая часть отладки выполняется с помощью простых операторов печати и путем проверки самого make-файла. Это не обрабатывается VS.

введите описание изображения здесь

...