2009-10-14 5 views
1

OpenSuse 11.1 x64 Box에 앉아 있고 sigC++를 사용하는 모듈이 있습니다. 이런 식으로 링크 할 때 :ld가 설치된 라이브러리를 찾을 수 없습니다.

g++ [a lot of o's, L's and l's] -lsigc-2.0 

을 라이브러리가 그러나 나는

/usr/lib64/gcc/x86_64-suse-linux/4.3/../../../../x86_64-suse-linux/bin/ld: cannot find -lsigc-2.0 

를 얻을. 파일 시스템에서
:

/usr/lib64 

을 그리고 ldconfig를 호출 할 때 : ld.so.conf에

$ sudo find/-name "libsigc-2.0*" 
/usr/lib64/libsigc-2.0.so.0.0.0 
/usr/lib64/libsigc-2.0.so.0 
/usr/lib64/libsigc-2.0.so 

나는이

$ ldconfig -v | grep sigc 
libsigc-2.0.so.0 -> libsigc-2.0.so.0.0.0 

왜?

+0

저는 ldconfig가 libsigc-2.0.so를 출력하지 않고 libsigc-2.0.so.0 만 출력한다는 것을 알았습니다. 둘 다 libsigc-2.0.so.0.0.0에 대한 심볼릭 링크이지만 왜 .0 링크 만 ldconfig에 의해 처리됩니까? – GeeF

답변

1

너무 바보입니다. 그것은 오래된 코드베이스의 단지 -lsigc-2.0 문 앞에 나는 libsigc에 대한 정적 librarys는 (더 이상)이없는, 분명히

-Wl,-Bstatic 

했다.

0

libsigc-2.0.so가 (libsigc-2.0 제외)으로 링크되었을 수 있습니다.

objdump -p /usr/lib64/libsigc-2.0.so | grep SONAME

libsigc, 그 이름으로 추가 심볼릭 링크를 만들어야 할 수도 있습니다.

+0

나에게 준다 SONAME libsigc-2.0.so.0 그리고 그것은 ldconfig가 libsigc-2.0.so.0.0.0에 대한 링크를 설정하는 것이다. – GeeF