2012-07-10 2 views
1

저는 리눅스에 정적 라이브러리를 구축했습니다. 지금까지는 완전히 자체적으로 포함되어 있으며 내부의 모든 코드는 표준 라이브러리 이외의 것을 사용하지 않습니다. 나는 최근에 변경을했고 현재 일부 컴파일 유닛이 부스트 코드를 사용하고있다.linux에서 정적 C++ 라이브러리 빌드 - 다른 라이브러리에 링크해야합니까?

g++ -c -Wall -pedantic *.cpp 
ar -cvq libbfclass.a *.o 

내 질문은 이것이다 : 내가 새로운 라이브러리의 사용에 대처하기 위해이 방법을 적용하거나 그냥 링크 라이브러리를 제공해야합니다 것이 필요하다 나는 다음과 같은 사용하여 라이브러리를 구축 한 내 라이브러리를 사용하는 실행 파일을 만들 때? 내가 정적 라이브러리 이해 기본적으로 단지 개체 파일의 아카이브,하지만 내가 필요로 모든 일을하게 내 빌드 스크립트를 수정 해야하는 경우 또는 그것이 실행 파일을 구축 할 때 필요한 경우에만 궁금 해서요 ???

답변

5

정확합니다 - 정적 라이브러리는 객체 파일의 아카이브 일뿐입니다. 심볼은 최종 실행 파일을 컴파일 할 때 해결되므로 다른 라이브러리에 대한 참조를 제공해야합니다.

+0

여전히 libtool에서 생성 된 la-files 또는 더 나은 정적 아카이브를 제공하는 경우 사용 가능한 pkg-config 파일을 사용하면 아카이브를보다 쉽게 ​​사용할 수있을뿐만 아니라 유용한 문서로도 사용할 수 있습니다. 리눅스에서 동적 인 라이브러리를 사용하는 경우는별로 없습니다. –

관련 문제