0

我正在尝试使用 flymake 设置语法检查,并且我已经完成了基本设置。

我的 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 源代码。

现在如何为 C++ 使用相同的 makefile 和相同的检查语法目标?我不能将多个 -std 选项(如 -std=c99 -std=c++98)设置为同一个 gcc 调用,或者可以吗?我需要使用一些条件吗?我不能在同一个 Makefile 上有多个检查语法目标。

4

1 回答 1

2

您可以将其拆分为两个目标:

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))
于 2013-12-04T14:06:18.680 回答