static linking 과 dynamic linking 에 대해서...

iamslash의 이미지

가령 liba.a 와 liba.so 가 있습니다. 이둘이 한 디렉토리에 있을때말입니다.

제가 main.cpp 를 컴파일해서 링크할때 옵션에 -la 이렇게 해주면
어느것이 링크가 되는 것인지요? static linking 을 하고 싶을때와
dynamic linking 을 할때 각각 어떤 옵션을 주어야 하는지 궁금합니다.

smirzo의 이미지

iamslash wrote:
가령 liba.a 와 liba.so 가 있습니다. 이둘이 한 디렉토리에 있을때말입니다.

제가 main.cpp 를 컴파일해서 링크할때 옵션에 -la 이렇게 해주면
어느것이 링크가 되는 것인지요? static linking 을 하고 싶을때와
dynamic linking 을 할때 각각 어떤 옵션을 주어야 하는지 궁금합니다.

-la 옵션을 사용하면 liba.so와 링크됩니다.

liba.a를 사용하려면 링크할 때 liba.a의 절대경로를 써주면 됩니다.

See you again!