2009-03-28 2 views

답변

2

-l 옵션은 라이브러리 이름을 인수로 사용하므로이 경우 라이브러리의 이름은 libXi.a (또는 libXi.so 또는 이와 비슷한 이름)가됩니다. 배포본에서 사용 가능한 표준 라이브러리 위치 (/ usr/lib,/lib,/usr/local/lib 등)에서 라이브러리 모양을 찾으십시오. 링커에 -L 옵션을 사용하여 추가 라이브러리 디렉토리를 지정할 수도 있습니다. 예를 들어

ldd /path/to/that/program | grep libXi 

: 당신의 프로그램이 성공적으로 컴파일 된 경우 -lXi를 사용하는 다른 프로그램이있는 경우

0

, 또는, 당신은 할 수

$ ldd /usr/X11R6/bin/audacity | grep libXi 
     libXinerama.so.1 => /usr/lib/libXinerama.so.1 (0x00007f53faaba000) 
     libXi.so.6 => /usr/lib/libXi.so.6 (0x00007f53f8e2c000) 

그리고 가장 가능성이 당신이 어디에 말할 것이다 그 도서관은. (빌드 프로세스 이 검색 경로를 변경할 수 있기 때문에 100 %가 아닙니다. 보통 X11과 같은 표준 라이브러리에서는 그렇지 않습니다.)

거기에서 어떤 파일이 있는지 패키지에 물어볼 수 있습니다. 우분투에 예 또는 뎁 기반 배포판의 경우 : LDD를 사용할 수없는 경우

$ dpkg --search /usr/lib/libXi.so.6 
libxi6: /usr/lib/libXi.so.6 

, 다음 확인 런타임 공유 라이브러리 링크에 대한 검색 경로를 나타냅니다 시스템의 /etc/ld.so.conf. (. /lib /과 /usr/lib가 기본적으로 포함되어 있습니다)

최악의 경우, 당신은 그것을 찾을 수 : 출력에 인 libXi에 대한

find/-regex '.*libXi\.\(a\|so\).*' 2> /dev/null 
0
strace -f -e open gcc ... -lXi 

봐.

관련 문제