フォルダのトラブルシューティング形式の問題

フォルダのトラブルシューティング形式の問題

現在のディレクトリを再帰的に検索しますが、「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)

現在Kubuntu 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

関連情報