xwindow프로그래밍 강좌를 보다가..

crom0406의 이미지

처음부터 막히는군요..
컴파일 하다가 에러가 나는데..

/usr/bin/ld: cannot find -lX11
collect2: ld returned 1 exit status

이런 에러가 뜹니다..
ld라는게 뭐하는 놈인지..
그리고 etc에 ld.so.conf라는거에는 X11의 라이브러리가 추가되어 있던데..
어디서 또 X11의 라이브러리를 추가시켜줘야 하는건지..
pynoos의 이미지

ld는 linker 지요..

저런류의 error가 나오면.. library를 찾아서 -L 옵션을 넣어주시면 됩니다.

-lX11 옵션은 libX11.a 혹은 libX11.so 를 찾는 것입니다.

find /usr -name "libX11*"

아마...

-L/usr/X11R6/lib

옵션을 -lX11 옵션 앞에 넣어 주면 될 것 같습니다.

ld 에 들어가는 옵션은 순서를 따르게 되므로 주의하세요..

aeronova의 이미지

지나가다가요..
이런 라이브러리 찾는 경로를 넣어줄 수 있다고 알고 있습니다.

/etc/ld.so.conf

아마 여기 경로를 추가하면 -L로 경로 알켜주는 건 안 해도 될겁니다.
(근데 -l로 링크하는 것도 여기 경로 추가해주면 자동으로 되나요?
..몰겠슴다.)

아, 이 파일 수정하고 ldconf인가 뭐 명령어 함 쳐서 갱신시키던데,
이 명령어를 정확히 몰겠네요..

고수님들, 알켜주세여~~.

It's better to burn out than to fade away. -- Kurt Cobain.

pynoos의 이미지

build time 때 찾는 경로를 넣어 주는 것이 아니라,

loader (ld.so)가 프로그램을 실행시킬때 필요한 shared object를 찾는 경로입니다.

더불어 linux, solaris에서는 LD_LIBRARY_PATH 라는 loader 용

환경변수가 있습니다.

man ld
man ld.so

해보셔요..

참고로 LD_LIBRARY_PATH에 해당하는 것은 OS 마다 약간씩 다릅니다. 그런면에서 linux와 solaris는 매우 흡사하지요..