2009-08-24 8 views
30

私はそのようなファイルパスのリストを持っている:makefile:ベース名にプレフィックスを追加するには?

FILE_PATH := a1.so a2.so bla/a3.so bla/a3.so bla/blo/a4.so.... 

私が取得するために、ベース名に接頭辞を追加する必要があります。

FILE_PATH_PREFIX := liba1.so liba2.so bla/liba3.so bla/liba3.so bla/blo/liba4.so.... 

任意のアイデア?

答えて

55

Makeのaddprefix関数を見てください。

addsuffixと一緒に使用して、objファイルをソースの下にある1つのディレクトリ の下に置く例を示します。

 
SOURCE += MainThread.cpp 
SOURCE += Blah.cpp 

OBJ=$(join $(addsuffix ../obj/, $(dir $(SOURCE))), $(notdir $(SOURCE:.cpp=.o))) 

メイクマニュアルから: http://www.gnu.org/software/make/manual/make.html

 
$(addprefix prefix,names...) 

The argument names is regarded as a series of names, separated by whitespace; 
prefix is used as a unit. The value of prefix is prepended to the front of each 
individual name and the resulting larger names are concatenated with single 
spaces between them. For example, 

       $(addprefix src/,foo bar) 

produces the result `src/foo src/bar'. 
+1

ああありがとう!私はaddprefix/addsuffix関数について知っていましたが、私は結合関数が欠けていました... – dm76

+0

私はdm76のassesmentに同意します。実際にこの素晴らしい答えのキー値はjoin()です。 –

関連する問題