현재 디렉터리를 재귀적으로 검색하지만 "Test"라는 디렉터리는 무시하는 결함 찾기 및 cppcheck에 대한 make 대상을 만들려고 합니다. 그러나 몇 가지 형식 문제가 발생했습니다.
사용자가 작성한 명령과 스크립트 명령이 터미널에 표시될 때 동일하게 보입니다.
사용자 입력을 위한 내 터미널에는 다음이 표시됩니다.
cppcheck --quiet --force !(Tests)
실행시 makefile 출력의 터미널 디스플레이와 비교Make.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)
현재 쿠분투 16.04 LTS를 사용하고 있습니다. uname -a가 제공하는 Linux 버전은 4.10.0-33-generic입니다. make --version은 GNU Make 4.1을 제공합니다. 또한 bash를 사용합니다.
답변1
귀하가 보고 있는 오류는 아마도 입력 파일로 (또는 현재 디렉터리에 있는 다른 비 C 또는 비 C++ 소스 코드 파일)을 cppcheck
사용하여 실행되고 있는 것 같습니다 .Makefile
SOURCES
으로 설정하지 말고 !(Tests)
, 실행하려는 프로그램의 실제 소스코드 파일로 설정하는 것을 권장합니다 cppcheck
.