1

このような変数を作成したいという問題があります。

INCDIRS = -I dir0 -I dir1 -Idir2 -I dir3 ... -I dirN

ここで、dir1、...、dirNは、いくつかのベースディレクトリbase_dirのすべてのサブディレクトリの名前です。

この変数を作成するにはどうすればよいですか?もともと、次のことができると思っていましたが、

INCDIRS = $(shell for x in `find base_dir -type -d -print`; do echo -I $x; done;)

しかし、これは結果として

INCDIRS = -I -I -I -I ... -I

誰かがこれを行う方法を説明できるか、または私の元のコマンドがそれが行った出力を取得した理由を説明できれば、私はそれを大いに感謝します。ありがとう!

4

2 に答える 2

2

INCDIRS割り当てに2つのエラーがあります。1つはfindコマンドにあります。あるべきですfind -type d -print(または単にfind -type d;ここで-printは不要です)。他のエラーの使用$x$あなたは別のもので脱出する必要があります$

INCDIRS = $(shell for x in `find base_dir -type d -print`; do echo -I $$x; done;)
于 2012-11-21T02:33:49.603 に答える
2

最初にディレクトリのリストを取得してから、各ディレクトリの前に-Iを追加します。

SOURCE_DIRS := $(shell find base_dir -type d -print)
INCDIRS      = $(addprefix -I,$(SOURCE_DIRS))

他の何かのために$(SOURCE_DIRS)が必要な場合は、これが良いかもしれません。

于 2012-11-21T17:45:32.493 に答える