Установите make-файл для проверки исходных файлов c и c ++ с помощью emacs flymake

Я пытаюсь настроить проверку синтаксиса с помощью flymake, и у меня работает базовая настройка.

Мой make-файл для flymake выглядит следующим образом:

INCLUDES = -I ./inc ## list of more includes omitted for brevity
.PHONY: check-syntax
check-syntax:
gcc -Wall -Wextra -pedantic -fsyntax-only -Wno-variadic-macros -std=c99 $(INCLUDES) $(CHK_SOURCES)

Это работает нормально для моих C-источников.

Теперь, как использовать тот же make-файл и ту же цель проверки синтаксиса для C ++? Я не могу установить несколько параметров -std, например -std = c99 -std = c ++ 98, для одного и того же вызова gcc, или я могу? Нужно ли использовать какие-то условные? Я не могу иметь несколько целей проверки синтаксиса на одном и том же Makefile.

0

Решение

Вы можете разделить его на две цели:

check-syntax: check-syntax-c check-syntax-cxx

Затем проверьте синтаксис, используя компилятор C и флаги C в одной цели, и флаги C ++ и C ++ для другой.

Хотя вы должны разделить свои источники на источники C и C ++, что вы должны сделать в любом случае.


Если у вас нет разделенных файлов, вы можете сделать это с помощью GNU Make текстовая функция названный filter разделить источники:

CHK_SOURCES_C   = $(filter %.c,$(CHK_SOURCES))
CHK_SOURCES_CXX = $(filter %.cpp,$(CHK_SOURCES))
2

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]