[App 개발] 라이브러리 파일의 종류에 대한 질문
본문
대해 다음과 같이 숫자가 붙은 것도 있고 없느 것도 있고 여러가지가
만들어졌습니다. 어떤 파일들인지 궁금하더군요.
libcxcore.1.0.0.dylib
libcxcore.1.dylib
libcxcore.dylib
libcxcore.la
1. dylib 와 la 파일 그리고 .a 파일들은 뭐라고 부르며 어떤 차이가 있는지요 ?
2, 뒤에 숫자가 1.0.0 이나 1 이 붙은 게 있는 가하면 숫자가 안 붙은 것도
있는데 이것은 어떤 의미로 붙어있는 것인지요 ?
윈도에서는 그냥 빌드할때 쓰는 lib 나 실행시 사용하는 dll 두 가지였는데
복잡하네요 ^^
최신글이 없습니다.
최신글이 없습니다.
댓글목록 2
hongjuny님의 댓글
제가 아는대로만 드립니다.
1. 일단, static library 는 .a (archive) 입니다. 윈도우에서 *.lib 에 해당되겠습니다. dynamic library 는 .dylib 입니다. 윈도우의 *.dll 에 해당하는 파일입니다. .la 는 GNU Libtool supported library 입니다. Libtool 에 대해서는 GNU Libtool 홈페이지를 참조하세요. -_-; (<a href=http://www.gnu.org/software/libtool/) target=_blank>http://www.gnu.org/software/libtool/) </a>
2. 파일을 자세히 살펴보시면 진짜 라이브러리 파일은 libcxcore.1.0.0.dylib 이고, 나머지 파일들은 alias 파일일 것입니다.
이렇게 하는 이유는, 라이브러리 version 이 올라가서 새로운 컴파일 (예를 들어 1.0.1) 이 만들어졌다고 치면, 이 라이브러리를 참조해서 작성한 프로그램은 새로 컴파일을 해야 되겠지요? 하지만, 가짜 파일 (libcxcore.dylib) 을 만들어 두면, 버젼이 변경되어도 계속 동일한 라이브러리 이름으로 참조가 되므로 다시 컴파일할 필요가 없습니다.
그냥 똑같은 이름으로 dylib 을 만들면 되지 왜 이렇게 번거롭게 만드냐고 하신다면, 라이브러리 만든 사람에게 가서 물어보세요. ㅠㅠ
조해성님의 댓글
여러 버전의 라이브러리 파일을 따로 두고 선택 링크해야 하는 경우가 종종 있는데 이럴 때 버전이 구분되어 있는 것은 매우 편리합니다. ^^