我正在尝试创建一个名为 Aa 的库,它提供一个类 A,它依赖于类 B 和 C,所有这些都在它们各自的文件(.cpp
和.hpp
)中。我通常手动编译所有代码,但随着文件数量的增加,我想使用 makefile。基本上,我会做的是:
g++ -c A.cpp
g++ -c B.cpp
g++ -c C.cpp
ar rvs A.a *.o
我怎样才能构建一个这样做的makefile?makefiles 甚至可以调用ar
吗?
这是我尝试过的:
CC=g++
CFLAGS=-c -Wall
objects=C.o B.o
all : A.o $(objects) #Creates the library called A.a.
:ar rvs A.a A.o $(objects)
A.o : $(objects) A.hpp A.cpp
:$(CC) $(CFLAGS) A.cpp
B.o : B.hpp B.cpp
:$(CC) $(CFLAGS) B.cpp
C.o : C.hpp C.cpp
:$(CC) $(CFLAGS) C.cpp
但似乎我的ar rvs A.a A.o $(objects)
指令甚至没有执行。此 makefile 生成所有正确的.o
文件,但不归档它们。