0

我正在尝试在一个目录上运行一个 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) $@ $^

请建议。

4

1 回答 1

0

我不熟悉 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 $@ $<
于 2013-02-28T02:25:12.770 回答