2016-12-16 2 views
0

Попытка отвечая на this SO question я узнал, что НКУ вариантыStop НКУ об ошибке с несколькими файлами компиляции

  • -Wfatal-errors
  • -fmax-errors=n

работы "на единицу компиляции"

я имею в виду , используя 2 исходных кода c файла и компиляцию с командой

gcc -Wall -Wextra -pedantic -Wfatal-errors -o test test1.c test2.c 

и писать мусор в обоих файлах я вижу, что останавливается на первой ошибки test1.c, но он начинает сбор test2.c.

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

Вопрос: есть ли опция компилятора, которая работает «на команду gcc»?

ответ

3

Насколько я знаю или могу определить, нет, GCC не имеет такой возможности. Если бы это было так, я ожидал бы, что он задокументирован либо как «Overall Option», либо, возможно, среди «Options to Request or Suppress Warnings» (где зарегистрировано -Wfatal-errors). Ни один из разделов не описывает такой вариант, равно как и общий список option summary не перечисляет ничего подходящего, помимо тех вариантов, которые уже обсуждались и отклонялись в вопросе.

Обратите внимание, что я упомянул и связал документы для GCC 6.2.0, самой последней версии на момент написания этой статьи. Я думаю, что можно с уверенностью предположить, что если такой вариант, как запрос, присутствовал в более ранней версии, он был бы перенесен вперед, но я не выполнил исчерпывающий поиск документации GCC, которая должна была бы доказать это.

Альтернативой, которая кажется мне наиболее перспективной, является просто компиляция каждой единицы перевода через отдельную команду gcc, а затем соединить их вместе на отдельном шаге. Makefiles часто структурированы таким образом, и GNU Make останавливается после сбоя сборки любой цели при условии, что ее параметр -k/--keep-going не включен.

+0

Ну, это ответ, который я догадался, и makefile, безусловно, правильный путь. – LPs

 Смежные вопросы

  • Нет связанных вопросов^_^