如何使用lib文件在Makefile中创建另一个lib

时间:2012-11-26 20:03:19

标签: makefile gnu-make

我想制作一个使用另一个我的lib文件的lib文件。我已经在makefile中尝试了各种组合来进行链接,但有时候它会要求忽略链接命令或者没有警告但是当我尝试使用libs中的代码时会崩溃。我的makefile看起来像这样:

SRC = a.cpp b.cpp c.cpp etc.
OBJ = $(SRC:.cpp=.o)
OUT = ./libHTTPServer.a
INCLUDES := -I/home/myuser/Development/boost_1_51_0 \
            -I/home/myuser/Development/HTTPServers/Prot
CCFLAGS = -g
CCC = g++
LIBS = -L/home/myuser/Development/boost_1_51_0/buildedlibs/lib -lm
LDFLAGS = -g
.SUFFIXES: .cpp
.cpp.o:
    $(CCC) $(INCLUDES) $(CCFLAGS) -c $< -o $@ -lc libProt.a
$(OUT): $(OBJ)
    ar rcs $(OUT) $(OBJ)

depend: dep
dep:
    makedepend -- $(CCFLAGS) -- $(INCLUDES) $(SRC)
clean:
    rm -f $(OBJ) $(OUT) 

1 个答案:

答案 0 :(得分:0)

您无法将库链接到您正在创建的静态库。静态库只是打包到存档中的对象文件的集合。

如果libProt是您自己创建的并且具有目标文件的东西,您可以在ar命令中添加它们以“组合”这两个静态库。