我正在尝试为 flawfinder 和 cppcheck 创建 make 目标,这些目标将递归搜索当前目录,但忽略名为“Test”的目录。但是,我遇到了一些格式问题。
我的用户编写的命令和脚本命令在终端上显示时看起来相同
我的用户输入的终端显示:
cppcheck --quiet --force !(Tests)
与运行时 makefile 输出的终端显示相比制作.securityCheck:
=================== cppcheck ======================
Tue Aug 29 13:32:00 PDT 2017
===================================================
cppcheck --quiet --force !(Tests)
执行 makefile 脚本时会产生错误:
syntax error near unexpected token `('
当我的用户输入评估正确时
生成文件:
CPPCHECK ?= cppcheck
CPPCHECK_FLAGS += --quiet --force
FLAWFINDER ?= flawfinder
FLAWFINDER_FLAGS += --quiet --dataonly --minlevel 4
SOURCES ?= !(Tests)
.securityCheck:
@$(ECHO) =================== cppcheck ======================
@$(DATE)
@$(TIME)
@$(ECHO) ===================================================
$(CPPCHECK) $(CPPCHECK_FLAGS) $(SOURCES)
@$(ECHO) ================== flawfinder =====================
@$(DATE)
@$(TIME)
@$(ECHO) ===================================================
$(FLAWFINDER) $(FLAWFINDER_FLAGS) $(SOURCES)
目前使用 kubuntu 16.04 LTS。 uname -a 给出的 Linux 版本为 4.10.0-33-generic。 make --version 提供 GNU Make 4.1。也使用bash。
答案1
我相信您看到的错误可能是cppcheck
使用Makefile
(或当前目录中的某些其他非 C 或非 C++ 源代码文件)作为输入文件运行的。
我建议您不要将其设置SOURCES
为!(Tests)
,而是将其设置为您要运行的程序的实际源代码文件cppcheck
。