我有以下简单的makefile
#all: binsem.a ut.a ph
FLAGS = -Wall -L./
binsem.a:
gcc $(FLAGS) -c binsem.c
ar rcu libbinsem.a binsem.o
ranlib libbinsem.a
ut.a:
gcc $(FLAGS) -c ut.c
ar rcu libut.a ut.o
ranlib libut.a
clean:
rm -f *.o
rm -f a.out
rm -f *~
rm -f ph
rm -f *a
问题是它只生成binsem.a而不是ut.a,可能是因为依赖性问题。
我试着看着旗帜,但没有找到答案。
非常感谢。
答案 0 :(得分:1)
默认情况下,如果未在命令行上指定目标,make
将构建它找到的第一个目标(如果有任何依赖项,则构建它)。您的第一个目标是binsem.a
,并且您没有列出任何依赖项,因此这是唯一可以构建的内容。
尝试在顶部添加此内容:
all: binsem.a ut.a
并提及其他目标中的依赖项:
binsem.a: binsem.c
...
ut.a: ut.c