shared library 를 옮기는 방법이 있을까요?

gurugio의 이미지

qt를 이용한 응용 프로그램을 개발중인데요

제 개발 머신에서는 잘 컴파일 되서 실행되는데

다른 머신에는 libXcursor.so.1이 없다고 나옵니다.

그래서 제 개발 머신에 있는

/usr/X11R6/lib에 있는 libXcursor.* 들을 복사해서 옮겨줬는데도

안되네요.

서로 다른 머신간에 있는 라이브러리를 복사해도 소용이 없나요?

익명 사용자의 이미지

shared library를 복사한 후에 ldconfig를 한번 돌려주세요.

아빠곰의 이미지

library 자체가 또 다른 library를 참조할 수 있습니다. 즉 복사하신 library가 참조하고 있는 파일이 없어서 제대로 동작 안할수 있죠. ldd 로 확인해보시고요.

또, 복사하신 library가 적당한 위치에 있어야 합니다. /etc/ld.so.conf 파일에 정의되 있는 디렉토리로 옮기시는 게 좋죠. 예를들어서 /usr/local/lib 정도면 좋겠네요. 옮기고 나선 ldconfig를 가볍게 한번 돌려주시는 것도 잊지 마시고요.

----
아발발다빠따반반나다발딸발발다빠따따맣밤밤따받따발발다따밝다발발다빠따따밤반다빠따다맣밥발
발다따밥다발발다따박다발발다빠따따밞밭밭다따다맣아희

익명 사용자의 이미지

아빠곰 wrote:
옮기고 나선 ldconfig를 가볍게 한번 돌려주시는 것도 잊지 마시고요.

왜 ldconfig는 가볍게 돌려야 하죠?

사실 상당히 무겁던데...

386시스템에서는 20초이상도 더 걸립니다.

아빠곰의 이미지

무겁게 돌리면... 컴퓨터가 힘들잖아요 :oops:

----
아발발다빠따반반나다발딸발발다빠따따맣밤밤따받따발발다따밝다발발다빠따따밤반다빠따다맣밥발
발다따밥다발발다따박다발발다빠따따밞밭밭다따다맣아희

익명 사용자의 이미지

아!!! ldconfig 라는게 있었군요..

옵션을 바꿔서 그 라이브러리를 참조하지 않게 컴파일을 했는데..

qt를 다시 컴파일해야 겠습니다. 한 3시간 걸리겠네요.. :D

감사합니다.