質問

OK、Linuxライブラリに機能を追加しました。

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

したがって、「Make install」は私のライブラリをここに置きます: '/usr/local/lib'および '/usr/local/include'

構成で以下を使用しました:./Configure- Enable-Maintainer-Mode -Enable-uninsted-build 'cflags = -g -o0' 'cxxflags = -g -o0' 'jflags = -g -o0' 'fflags = -g -o0 'cppflags =' -l/usr/local/lib/-usr/local/include/gpod-1.0/ '

しかし、プログラムを実行しようとすると、「シンボルが見つかりません」と「プラグインはロードできません」を取得します

私が生成されたプラグインをlddするとき、〜/開発/rhythmbox/plugins/ipod/.libs $ ldd libipod.so

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

liblhythmbox-core.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/includ/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では、適切なヘッダーファイルが含まれていることがわかります。

〜/Development/Rhythmbox/Plugins/iPod/.Deps $ rb-ipod-source.po |グレップ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

何か案は?

役に立ちましたか?

解決

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

他のヒント

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

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top