我正在尝试使用 flymake 设置语法检查,并且我已经完成了基本设置。
我的 flymake makefile 如下所示:
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 上有多个检查语法目标。
最佳答案
你可以把它分成两个目标:
check-syntax: check-syntax-c check-syntax-cxx
然后在一个目标中使用 C 编译器和 cflags检查语法,并在另一个目标中使用 C++ 和 C++ 标志检查语法。
尽管您必须将源代码拆分为 C 和 C++ 源代码,但无论如何您都应该这样做。
如果您还没有分割文件,您可以使用 GNU Make text function命名为 filter
以拆分源:
CHK_SOURCES_C = $(filter %.c,$(CHK_SOURCES))
CHK_SOURCES_CXX = $(filter %.cpp,$(CHK_SOURCES))
关于c++ - 设置 makefile 以使用 emacs flymake 检查 c 和 c++ 源文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20377288/