Linux にはファイルが存在するかどうかを判断する機能があり、この機能は Makefile のワイルドカード関数です。ワイルドカード関数はファイル リストと一致します。指定されたパターンに一致するファイルがない場合、関数は空を返し、構文は "$(wildcard PATTERN...)" になります。
#このチュートリアルの動作環境: linux7.3 システム、Dell G3 コンピューター。
Linux にはファイルの存在を判断する機能があります
makefile
ifneq ($(wildcard FILE,) #文件存在 endif## のワイルドカード関数 #$(wildcard FILE) は、現在のパスにある FILE ファイルに一致するファイル拡張を意味します。 現在のパスに a.c と b.c が存在すると仮定し、 src=$(wildcard *.c) を実行すると、src の値は a.c b.c になります; ワイルドカードを使用しない場合, 例: src=$ (wildcard c.c); その場合、現在のパスの下にある c.c という名前のファイルを展開する必要があります。このファイルは現在のパスの下に存在しないため、src は空の文字列です。 例は次のとおりです: 上記 2 つの方法を使用して、obj フォルダーに depend.mk ファイルが存在するかどうかを確認し、存在する場合は a.c および b.c ファイルを作成します。 記述された Makefile は次のとおりです。
OBJ_DIR=obj fileNames = $(wildcard $(OBJ_DIR)/depend.mk) all: @echo "this is all " @echo ${fileNames} @if [ -e $(OBJ_DIR)/depend.mk ]; then touch b.c; fi ifneq ($(wildcard $(OBJ_DIR)/depend.mk),) touch a.c endif実行後、a.c と b.c が正常に作成されました。 推奨学習:
以上がLinuxにはファイルの存在を判定する機能はありますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。