0

我有以下简单的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,可能是因为依赖问题。

我尝试查看标志,但没有找到答案。

非常感谢。

4

1 回答 1

1

默认情况下,如果您没有在命令行上指定目标,make将构建它找到的第一个目标(如果有的话,它是依赖项)。您的第一个目标是binsem.a,并且您没有列出任何依赖项,因此这是唯一构建的东西。

尝试在顶部添加类似的内容:

all: binsem.a ut.a

并提及其他目标中的依赖项:

binsem.a: binsem.c
...
ut.a: ut.c
于 2013-10-19T15:23:10.090 回答