2011-05-11 4 views
35

이 파일을 다운로드했습니다 : https://github.com/mongodb/mongo-c-driver확장자가 .a 인 파일은 무엇입니까?

이제는 C 프로그램에서 사용하려고하지만 생성 된 .a 파일을 어떻게 처리해야할지 모르겠습니다. 그들은 무엇인가? 나는 GCC 매뉴얼조차도 정보를 찾을 수 없었다.

그리고 난 그렇게처럼 내장 : 또한

scons --c99 

, 내 C89 프로그램 C99 라이브러리를 사용할 수 있습니까?

+0

가능한 [* .so, .la 및 .a 라이브러리 파일의 차이점] (https://stackoverflow.com/questions)/12237282/whats-the-difference-so-la-and-a-library-files) *. –

답변

48

.a 파일은 일반적으로 archive tool에 의해 생성되는 static 라이브러리입니다. 일반적으로 정적 라이브러리와 관련된 헤더 파일을 포함하고 컴파일 할 때 라이브러리에 링크합니다.

+0

.so 파일이 라이브러리 파일이라고 생각했습니다. 둘 다 사용해야합니까? – Blub

+4

@Blub : 정적 라이브러리와 공유 라이브러리가 있습니다. Linux에서 .a는 정적 라이브러리 (아카이브)이고 .so는 공유 라이브러리 (공유 객체)입니다. – unwind

+0

'ar tv foo.a'를 사용하여'.a' 정적 라이브러리의 내용을 볼 수 있습니다. 이것은 대개'.o' 객체 파일의 모음입니다. –

18

.a 파일은 ar 유틸리티로 만들어집니다. 그들은 도서관입니다. gcc와 함께 사용하려면 lib/ 폴더에있는 모든 .a files를 수집 한 후 lib 디렉토리에 모든 .A 파일의 -L lib/-l<name of specific library>

컬렉션과 연결/선택 사항입니다. 이렇게하면 코드와 라이브러리가 잘 분리 된 더 나은 디렉토리를 만들 수 있습니다. IMHO

관련 문제