我正在尝试在一个目录上运行一个 makefile,以便它在该目录中的所有 cpp 文件上运行 lint,并将输出保存在多个与源文件同名的文件中。 例如换句话说,我想将 abc.cpp 的 lint 保存到 abc.txt,将 def.cpp 保存到 def.txt,以此类推,将所有未知数量的文件保存到子目录 lintfiles。 像下面这样的东西:-
*lint .ALWAYS:*
--lint-nt $(PATHS) $(OPTIONS) *.cpp > ./lintfiles/%f.txt
make util 不理解 Lint 的
%f
选项。我也尝试了以下但它没有产生输出。
lintfiles/%.txt: %.cpp
-lint-nt $(PATHS) $(OPTIONS) $@ $^
请建议。
我不熟悉 pc-lint,但如果语法是这样的
lint-nt -o abc.lint abc.cpp
然后这个 makefile 应该完成这项工作:
SRC_DIR := src # or whatever
SRCS := $(wildcard $(SRC_DIR)/*.cpp)
LINTS := $(patsubst $(SRC_DIR)/%.cpp, $(SRC_DIR)/lint/%.lint, $(SRCS))
all: $(LINTS)
$(LINTS): $(SRC_DIR)/lint/%.lint : $(SRC_DIR)/%.cpp
lint-nt $(PATHS) $(OPTIONS) -o $@ $<