컴파일 할때 static or shared library 문제

익명 사용자의 이미지

어떤 프로그램을 컴파일할때 같이 링크되는
라이브러리가 여러종류가 있다고 할때 어떤 라이브러리는 static 으로
어떤 라이브러리는 shared로 선택해서 컴파일하려면 어떻게 해야되죠?

익명 사용자의 이미지

질문 요지를 정확하게 파악 했는지 모르지만
static -> ???.a 나(libaaa.a)
Shared -> ???.so 나 (libbbb.so) link 시 따로 지정 하는건 없을겁니다.
그냥 -laaa -lbbb 이렇게 하면 됩니다.

익명 사용자의 이미지

만약에 LD_LIBRARY_PATH로 잡혀있는곳에
libaaa.a
libaaa.so
libbbb.a
libbbb.so
라는 라이브러리들이 static, shared 버젼이
동시에 있다고 하면

aaa라이브러리는 static 버젼으로
bbb라이브러리는 shared 버젼으로 하는 식으로
골라서 링크해서 컴파일 하려면 어떻게 해야하는지
가 궁금하다는 것이였지여~ =_=;
고수들의 조언 부탁드림다...

익명 사용자의 이미지

그러면 link시 직접 .so 파일을 지정 하시면 되죠.

cc -o test_prg -laaa bbb.so test_prg.c 이렇게요.