Как заставить gcc пропускать ошибки, но все равно выводить их.



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

673   3  

3 ответов:

Последние версии GCC будут пытаться пропускать некоторые ошибки там, где это возможно.

Скажем, что тело foo(){... содержит const-нарушение. Блок преобразования не создаст объектный файл, но любой приличный компилятор продолжит работу после этой ошибки в bar(){...

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

GCC завершается, когда он не может идти дальше.

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

Убедитесь, что вы не включили -Wfatal-errors.

Из GCC online doc:

- fmax-errors=n

Ограничивает максимальное число сообщений об ошибках до n, и в этот момент GCC выходит из игры, а не пытается продолжить обработку исходного кода. Если n равно 0 (значение по умолчанию), то количество выдаваемых сообщений об ошибках не ограничено. Если параметр-Wfatal-errors также указан, то параметр-Wfatal-errors имеет приоритет над этим параметром.

Comments

    Ничего не найдено.