我有很多静态库,我需要使用ar
中的Makefile
合并为一个文件。
例如,
ar -M <<EOM
CREATE app.a
ADDLIB lib1.a
ADDLIB lib2.a
ADDLIB lib3.a
....
....
....
ADDLIB libN.a
SAVE
END
EOM
这很好,只要我知道我需要添加为ADDLIB libX.a
的所有库,就可以使用。我想使它自动化。我在Makefile中有一个变量,用于存储所有这些库。在Makefile目标内部,我想这样做,
my_target:
# Get all libraries from the variable $(libraries).
# Combine all of them into a single file using archiver as above
由于目标内部的每个“行”或子命令都在其自身的外壳中运行,因此我无法找到一种方法。
我有很多静态库,我需要在Makefile中使用ar组合成一个文件。例如,ar -M << []
#Makefile trickery to create a variable that holds a single space:
space :=
space +=
my_target:
ar -M CREATE $(subst $(space), ADDLIB ,$(strip $(variables))