2010-12-08 5 views
1

좋아, 리눅스 라이브러리에 몇 가지 기능을 추가했습니다.리눅스에서 강제로 링크하는 방법 libgpod와 리듬 상자

하지만 'make install'후에도 기능을 확인하려고하는 프로그램이 이전 버전으로 연결됩니다. '를/usr/local/lib로' 및 '는/usr 포함// 지역'

내가 구성에 다음을 사용 : 그래서 '설치하기'

여기 내 라이브러리를두고 ./configure를 - CFLAGS = -g -O0 ''CXXFLAGS = -g -O0 ''JFLAGS = -g -O0 ''FFLAGS = -g -O0 'CPPFLAGS ='- L : 허용 가능한 유지 보수 모드 -/usr/지방/lib 디렉토리/-I /usr/local/include/gpod-1.0/ '

내가 얻을 프로그램을 실행하려고 할 때'기호를 찾을 수 없습니다 '와'플러그인

'로드 할 수 없습니다를

나는 생산 플러그인을 ldd를 할 때 너무 :

리눅스 gate.so.1 => (0x00d97000)

librhythmbox 코어 libipod.so ~/개발/리듬 박스/플러그인/아이팟/.libs의 $의 LDD .so.1 => /home/gary/Development/rhythmbox/shell/.libs/librhythmbox core.so.1 (0x009ad000)

libgpod.so.4 => /usr/lib/libgpod.so. 4 (0x00509000)

분명히 잘못된 라이브러리에 연결되어 있기 때문에 강조가 강조됩니다 ... 내가 make 파일을 보면 다음과 같습니다 :

-I/usr/local/include/gpod-1.0 -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include -I/usr/-I/usr/include/libpng12

IPOD_LIBS = -pthread -L/usr/local/lib -lgpod -lgdk_pixbuf-2.0 -lm -lgobject-2.0 -lgmodule-2.0 -lpng12 - lgthread-2.0 -lrt -lglib-2.0

그래서 CPPFLAGS이 플러그인을 통해 전달되고있다

및 .deps에 내가 포함되는 적절한 헤더 파일을 참조하십시오 ... IE :

~/개발/리듬 박스 /plugins/ipod/.deps$ less rb-ipod-source.Po | 그렙 gpod

/usr/local/include/gpod-1.0/gpod/itdb.h ../../lib/eel-gconf-extensions.h

/usr/지방/포함/gpod- 1.0/gpod/itdb.h :

우분투 10.10

어떤 아이디어가?

+0

'/ usr/local/lib'에'libgpod.so.4'가 설치되어 있습니까? 만약'$ LD_RUN_PATH','$ LD_LIBRARY_PATH','/ etc/ld.so.conf'의 내용입니까? – ephemient

+0

ld.so.conf = include /etc/ld.so.conf.d/*.conf 다른 두 변수는 비어 있습니다 ... libgpod.so.4는/usr/local/lib에 존재합니다. 이전 버전을 찾은 것 같습니다 ... – Gary

+0

그동안까지는 라이브러리에서 설치 디렉토리를 변경하여 프로덕션 버전을 덮어 썼습니다 ... 바라건대 그 작품. – Gary

답변

1

configuremake을 실행하기 전에 LD_RUN_PATH에서 /usr/local/lib으로 설정해야합니다. 그러면 실행 파일에 이 공유 라이브러리 검색 경로로 포함됩니다.

+0

아직까지는이 사실을 확인하지는 못했지만, 현재 여러 사람이 올바른 것으로 확인했습니다. 고맙습니다 – Gary

0

libgpod.so은 라이브러리의 이전 버전을 가리 킵니다.

관련 문제