1

OK、Linux ライブラリにいくつかの機能を追加しました。

ただし、「make install」した後でも、機能を確認しようとしているプログラムは以前のバージョンにリンクしています。

したがって、'make install' は私のライブラリをここに置きます: '/usr/local/lib' と '/usr/local/include'

configure で以下を使用しました: ./configure --enable-maintainer-mode --enable-uninstalled-build 'CFLAGS=-g -O0' 'CXXFLAGS=-g -O0' 'JFLAGS=-g -O0' 'FFLAGS =-g -O0' CPPFLAGS='-L /usr/local/lib/ -I /usr/local/include/gpod-1.0/'

しかし、プログラムを実行しようとすると、「シンボルが見つかりません」と「プラグインを読み込めません」というメッセージが表示されます

生成されたプラグインを ldd すると: ~/Development/rhythmbox/plugins/ipod/.libs$ ldd libipod.so

linux-gate.so.1 => (0x00d97000)

librhythmbox-core.so.1 => /home/gary/Development/rhythmbox/shell/.libs/librhythmbox core.so.1 (0x009ad000)

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

明らかに間違ったライブラリにリンクしているため、重点が強調されています...メイクファイルを見ると、次のように表示されます。

IPOD_CFLAGS = -pthread -I/usr/local/include/gpod-1.0 -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include -I/usr/include/gdk-pixbuf-2.0 -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:

~/Development/rhythmbox/plugins/ipod/.deps$ 以下の rb-ipod-source.Po | grep gpod

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

/usr/local/include/gpod-1.0/gpod/itdb.h:

Ubuntu 10.10

何か案は?

4

2 に答える 2

1

LD_RUN_PATHを実行する/usr/local/lib前にに設定する必要がconfigureありmakeます。/usr/local/libこれは、共有ライブラリ検索パスとして実行可能ファイルに埋め込まれます。

于 2010-12-09T02:31:45.517 に答える
0

libgpod.soライブラリの古いバージョンを指しています。

于 2010-12-08T19:55:43.613 に答える