2012-11-26 2 views
1

다른 lib 파일을 사용하는 lib 파일을 만들고 싶습니다. 나는 makefile에서 여러 가지 조합을 시도했지만, 링크 명령을 무시하거나 경고하지 않지만 libs에서 코드를 사용할 때 충돌하는 경우가 있습니다. 내 메이크 파일은 다음과 같습니다.lib 파일을 사용하여 Makefile에 다른 lib 파일을 만드는 방법

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 [email protected] -lc libProt.a 
$(OUT): $(OBJ) 
    ar rcs $(OUT) $(OBJ) 

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

* 확인하지 않고 새 파일을 만들 때 어떤 명령을 사용합니까? – Beta

+0

'ar' 명령을 사용해 보셨습니까? 그것이'.o' 파일에서'.a' 라이브러리를 만들기 때문에 제가 알고있는 것입니다. – anishsane

+0

anishsane 제 두 번째 lib 파일을 만들기 위해 ar을 사용하고 있습니다 ar rcs $ (OUT) $ (OBJ) –

답변

0

만들고있는 정적 라이브러리에 라이브러리를 연결할 수 없습니다. 정적 라이브러리는 아카이브에 압축 된 객체 파일의 모음입니다.

libProt은 자신을 생성하고 객체 파일을 가지고있는 경우 ar 명령에 libProt을 추가하여이 두 정적 라이브러리를 "결합"할 수 있습니다.

관련 문제