1

バックグラウンド

最近、fuppes UPnP メディア サーバーに出会いました。ホーム サーバーにインストールし、ビデオを XBox にストリーミングするために使い始めました。それは本当にうまく機能し、私はそれに満足していました。次に、サーバーのディストリビューションをアップグレードすると、fuppes が機能しなくなりました。さまざまなライブラリが減価償却されたためであることがわかりました。具体的には、debian が大部分のパッケージから .la libtool ファイルを削除し始めたためです。

問題/質問

私の質問は、libtool 用の .la ファイルがないので、どうすれば fuppes をビルドできるのでしょうか? より具体的には、これは私の正確なエラーメッセージです:

/bin/sed: can't read /usr/lib/libogg.la: No such file or directory
libtool: link: `/usr/lib/libogg.la' is not a valid libtool archive

/usr/lib/libogg.la ファイルはもうありません。これは端末からそれを証明します:

# dpkg -L libogg-dev | grep "a$"
/usr/lib/libogg.a
#

本当に正しい方向に向けられる必要があるだけです。libtool-automake のドキュメントを読みましたが、libogg.la をもう持っていないため、コンパイル方法を教えてくれる情報がまだありません。要するに、.la ファイルがない場合、どのようにコンパイルすればよいのでしょうか?

NBこれはすべてUbuntu Karmic Koalaにあります

4

2 に答える 2

1

32 ビットと 64 ビットの両方でビルドしているときに問題が発生する可能性があるため、Debian は .la ファイルを削除していると思います。libtool が .la ファイルを見つけた場合、リンク コマンドでライブラリへのフル パスを入力するという厄介な習慣があり、これは間違ったライブラリである場合があります (64 ビットではなく 32 ビット、またはその逆)。Solaris では、libtool が /usr/lib/64/libintl.so ではなく /usr/lib/libintl.so をリンクしようとする問題がありました。これはすべて、/usr/lib/libintl.la が見つかったためです

適切な Makefile.am 内で mumble_LIBADD 行 ('mumble' をビルドしているパッケージの名前に置き換えます) で -logg を指定することにより、.la ファイルなしでリンクできるはずです。何らかの理由でリンカーがライブラリを見つけられない場合は、次のようなものを追加してパスを指定できます。

mumble_LDFLAGS = -R/usr/lib -L/usr/lib

しかし、この例では、/usr/lib がライブラリのデフォルトの検索パスにあると信じなければなりません。

sed に関する特定のエラー メッセージに対して、fuppes が sed を使用して /usr/lib/libogg.la を検索する理由はわかりませんが、これは libtool から上流の適切な変更 (autoconf や automake など) によって修正される可能性があります。「configure」のどこかに、この問題に役立つスイッチがあると思います (--with-ogg など)。「configure --help」を実行して、ヒントを探してください。

于 2009-12-04T15:29:34.087 に答える
1

.la ファイルは必要ありません。コマンド出力の重要な部分を貼り付けていませんでした-libogg.laファイルにリンクしようとしているステップは何ですか。私の推測では libtool であり、アップグレード後、autogen.sh を再実行したり、必要に応じて構成したりせずに、ソース ディレクトリまたは vcs チェックアウトで make を実行していると推測されます。

要するに、あなたはさらにあなたを助けるのに十分な情報を提供していません (どのようにして fuppes を入手しましたか? どのように構築しましたか? アップグレード後にどのように構築しようとしましたか?)。ほとんどの場合、ビルド ファイルを再生成するのを忘れたか、他のリンカ ステップで .la ファイルが取り込まれ、再生成する必要があります (たとえば、pkg-config ファイル)。

于 2009-11-03T23:20:28.223 に答える