簡體   English   中英

設置makefile以使用emacs flymake檢查c和c ++源文件

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM