[질문] ld 옵션과 libstdc++ 라이브러리에 관한 문제입니다.

mini7662의 이미지

g++ 로 컴파일한 라이브러리와 사용자 프로그램을

ld 로 -shared 붙여서 공유 라이브러리를 만들려고 합니다.

라이브러리를 api.so 라고 하고,

사용자 프로그램을 user.o 라고 했을때,

target.so 를 만들려고

ld -shared -o target.so user.o api.so -lstdc++ 라고 하면

ld: cannot find -lstdc++ 이라고 에러 나구요...

ld -shared -o target.so user.o api.so /usr/lib/libstdc++-libc6.2-2.so.3 식으로

직접 잡아주면 됩니다.

링크가 안 잡혔거나 하는 문제 같은데...

ldconfig 써도 잘 모르겠구요...

ld 에서 libstdc++ 을 위에서 처럼 직접 안 잡아주고

-lstdc++ 식으로 쓸수 없는지...

gcc 에만 -lstdc++ 옵션이 동작하는지요?

가르침을 바랍니다....(__)

환경은 레드헷 7.3, gcc 2.96 입니다.

pynoos의 이미지

g++ -print-search-dirs

해서 나오는 libraries 중에서 libstdc++.so 가 있는 directory를 -L option으로 넣어 주세요.

find /usr -name libstdc++.so

로 찾으셔도 되겠군요.