2010-04-18 5 views
0

모바일 장치 용 게임 엔진을 만들고 있습니다. 내 코드를 컴파일하고, 몇 개의 정적 라이브러리에 연결 한 다음 컴파일 된 코드를 정적 라이브러리와 결합하여 새로운 정적 라이브러리를 형성하려고합니다. 그러나 내 Google Fu는 나를 버리고 있습니다.여러 개의 정적 아카이브를 새 아카이브로 결합

a.a, b.ac.a 및 내 코드가 정적 라이브러리라고 가정합니다. 모든 컴파일을 awesome.a으로 컴파일하려고합니다.

어떻게하면됩니까?

나는 CodeSourcery의 arm-none-linux-gnueabi-ar을 사용하고 있습니다.

미리 감사드립니다.

mkdir a-objs && (cd a-objs && ar -x ../a.a) 
mkdir b-objs && (cd b-objs && ar -x ../b.a) 
mkdir c-objs && (cd c-objs && ar -x ../c.a) 
rm -f awesome.a && ar -r awesome.a a-objs/* b-objs/* c-objs/* && ranlib awesome.a 

작동합니다 :

답변

3

무언가 같이, a.a, b.ac.a이 CWD에 있다고 가정.

+0

아, 그래, 그럼 그걸 내 컴파일 된 코드 (내 .o)와 결합 할 수 있습니까? – knight666

+0

조금 어색하지만이 작품은 $ (YG_ARCHIVER) -vq $ (PROGS) $^&& $ (YG_ARCHIVER) -vr $ (PROGS) $ (YG_LIBRARIES)입니다. 그래서 내 정적 라이브러리를 컴파일하고 다른 정적 라이브러리를 추가합니다. – knight666

0

코드를 정적 라이브러리에 넣으려면 링크하지 마십시오. 정적 라이브러리는 전혀 링크되어 있지 않습니다. 이것은 단지 편의를 위해 하나의 파일에 들어있는 객체 파일의 모음입니다.

개체 파일을 만들어 라이브러리에 저장합니다. 객체 파일을 기존의 라이브러리에 새로 추가하는 대신 추가하려는 경우 상당히 쉽습니다 (기존 라이브러리가 누구에게 포함되어 있는지에 대한 기대치가 충분하다고 잘 알려진 경우에도 그렇지만, 나는 사람들이 기대하지 않을 새로운 것을 추가하는 것은 나쁜 생각 일 것이라고 말하고 싶다.)

관련 문제