linux gcc 빌드에서 link 옵션중에 -L -l 을 사용할 때 질문입니다.
글쓴이: trymp / 작성시간: 수, 2014/10/08 - 5:46오후
일반적인 linux 빌드에서 gcc 에 link 옵셥을 줄 때,
라이브러리를 지정하기 위해 -L 을 사용하잖아요
원래는 .so 를 찾는 패스로 알고 있는데요.
파일의 경로가 아래와 같을 때
a.c
./test/ok.so
./test/ok.a
# gcc -o a.c -L./test -lok
라고 할때 만일 ok.so 가 없다면 ok.a 로 정적 링크를 하게 되나요?
컴파일이 이상하게 되서 .so 가 없다면 .a 정적 라이브러리를 링크하는 것인지
표준이 맞는 것인지 궁금합니다.
고수님들의 조언 부탁드립니다.
Forums:
> 라이브러리를 지정하기 위해 -L 을
> 라이브러리를 지정하기 위해 -L 을 사용하잖아요
> 원래는 .so 를 찾는 패스로 알고 있는데요.
아닙니다. -L 은 정적이든 동적이든 라이브러리를 찾는 패스를 정해주는 것입니다.
> 라고 할때 만일 ok.so 가 없다면 ok.a 로 정적 링크를 하게 되나요?
정적 링크를 하려면 -static 플래그를 주어야합니다.
동적 링크에 실패했다고 자동으로 정적 링크를 하지는 않습니다.
표준과는 관계 없고 그냥 컴파일러 마음입니다.
그리고 라이브러리 파일 이름을 libok.a libok.so로 바꿔주세요.
댓글 달기