使用ar命令时,未创建库

时间:2016-05-02 22:29:43

标签: c makefile static-libraries exe

尝试从makefile创建静态库时,不会创建库。有人对此有任何意见吗?

all: test.exe

test.exe: test.o
    gcc -o test.exe test.o -L. -ltest

test.o: libtest.a
    gcc -c test.c

libtest.a: ABC-test.o
    ar rcs ABC-test.o

ABC-test.o: A-test.c B-test.c C-test.c
    gcc -c A-test.c B-test.c C-test.c

1 个答案:

答案 0 :(得分:4)

在这条规则中:

libtest.a: ABC-test.o
    ar rcs ABC-test.o

您忘记将图书馆的名称传递给ar。试试这个:

libtest.a: ABC-test.o
    ar rcs libtest.a ABC-test.o

或更好:

libtest.a: ABC-test.o
    ar rcs $@ $^