[英]Setup makefile to check both c and c++ source files with emacs flymake
我正在嘗試使用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和相同的check-syntax目標? 我不能將-std = c99 -std = c ++ 98之類的多個-std選項設置為相同的gcc調用,或者我可以嗎? 我需要使用一些條件嗎? 我不能在同一個Makefile上有多個檢查語法目標。
您可以將其拆分為兩個目標:
check-syntax: check-syntax-c check-syntax-cxx
然后使用C編譯器和一個目標中的C標志檢查語法,並使用另一個C ++和C ++標志。
雖然您必須在C和C ++源代碼中拆分源代碼,但您仍應該這樣做。
如果您沒有已經拆分的文件,可以使用名為filter
的GNU Make 文本函數來拆分源:
CHK_SOURCES_C = $(filter %.c,$(CHK_SOURCES))
CHK_SOURCES_CXX = $(filter %.cpp,$(CHK_SOURCES))
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.