1

我想制作一个使用另一个我的 lib 文件的 lib 文件。我在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) 
4

1 回答 1

0

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

如果 libProt 是您自己生成的并拥有目标文件,则可以将它们添加到您的ar命令中以“组合”这两个静态库。

于 2012-12-04T13:38:43.293 回答