JHB의 프로그래밍 삽질기

리눅스에서 해당하는 함수의 라이브러리 찾기 본문

PROGRAMMING/Linux

리눅스에서 해당하는 함수의 라이브러리 찾기

roter 2010.05.17 10:57


코딩하는 중에 <X11/extensions/XInput.h>에 있는 XListInputDevices를 사용해야하는데 컴파일 하다보니 자꾸 링킹에서 에러가 난다.

undefined reference to 'XListInputDevices' 라고.
현재 gcc컴파일 옵션은

offX: offX.c
gcc -O3 -Wall -lX11 -o $@ $<
였다. X11을 추가했는데 왜 되지 않을까 고민고민하다가 구글링을 했는데 다음과 같은게 나오더라

/usr/lib 내에서
strings -f libX* |grep XListInputDevices

해주니 XListInputDevices가 사용된 라이브러리 (a파일과 so파일)이 검색되더라.
만약 X관련된 라이브러리가 아니라면 /usr/lib 내에서
strings -f lib* |grep [사용된함수이름]

이렇게 해주면 라이브러리를 찾아 줄 수 있다는 점을 깨닳음!
우왕ㅋ굳ㅋ XListInputDevices는 libXi.so.6 안에 있었다. 당연히 링킹 옵션에 -lXi 를 붙여주니 그다음에는 에러 없이 잘 되었다..

p.s> 실행파일에 링킹된 라이브러리를 찾는 명령어는

ldd 실행파일이름

해주면 된다! ldd 내가만든프로그램 해줬더니 libXi.so.6 이 연결되어있다고 잘 나오더라~~ 으흐흐
저작자 표시 비영리 변경 금지
신고
0 Comments
댓글쓰기 폼