리눅스에서 동적,정적 라이브러리 동시 컴파일하기

삼구의신의 이미지

안녕하세요.

make file로 동적라이브러리와 정적라이브러리 두개다 사용하려고 하는데요
라이브러리는 libcurl을 정적으로 libsigc++2.0을 동적으로 사용하고싶은데요.

gcc -o -lcurl -lsigc++2.0 -shared a.out

이런식으로 컴파일 옵션을 줘서 빌드하면 segmentation fault가 발생해요.

그래서 gcc -o -lcurl -static -lsigc++2.0 -shared a.out 을 붙이면
libcurl 을 찾을수 없다고 나오네요 ㅠㅠ

어떻게하면 될까요?

chanik의 이미지

https://stackoverflow.com/questions/2954387/can-i-mix-static-and-shared-object-libraries-when-linking

대략 아래와 같이 하면 되는 모양이네요.

gcc a.c -Wl,-Bstatic -lcurl -Wl,-Bdynamic -lsigc++2.0 -o a.out

지정할 라이브러리가 여러 개라면 아래와 같이 죽 늘어놓으면 되는 것 같고요

-Wl,-Bstatic -lcurl -lfoo -Wl,-Bdynamic -lsigc++2.0 -lbar

삼구의신의 이미지

답변 감사합니다^^