• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:minidlnaのコンパイルが通りません)

minidlnaのコンパイルエラー:SQLite関連のエラーが発生

このQ&Aのポイント
  • CentOS 5.4の環境でminidlnaのコンパイルを行っているが、SQLite関連のエラーが発生している。
  • ライブラリ依存のエラーは解消されたが、SQLiteの関数が見つからないエラーが発生している。
  • yumで確認したが、必要なパッケージはすでに最新の状態であるため、解決策が分からない。

質問者が選んだベストアンサー

  • ベストアンサー
  • astronaut
  • ベストアンサー率58% (303/516)
回答No.4

立て続けにすみません。(おもしろいもので・・・) sqliteを /usr/local/ にインストールして、-L/usr/local/lib を加えてリンク。 これで、コンパイル直後に ldd minidlna とすると、/usr/local/lib/libsqlite.... を指しているのですが、実行時にどうしても /usr/lib/libsqlite.... を見に行ってしまうようです。 おそらくこれが原因で、起動してすぐにストップしているのではないでしょうか。 で、実行時に LD_PRELOAD=/usr/local/lib/libsqlite3.so.0.8.6 ./minidlna -f minidlna.conf とやったら、無事起動して、BRAVIAからも認識できています。 いかがでしょ? # LD_PRELOAD しなくても良い本質的な正しい手順があるのではないかと思いますが、とりあえず。

kon_t
質問者

お礼

!動きました! >LD_PRELOAD=/usr/local/lib/libsqlite3.so.0.8.6 これでした。 /etc/minidlna.confを追記して、LD_PRELOADの読み込みと/tmp/minidlna/files.dbの削除を 行うようにしました。 ただ、事前情報の通り、ビデオはmpeg2にしか対応していない感じですね…。 PT2+epgrecで録画して、cron起動のmencoderでXvid自動エンコード保存しているのですが…。 テレビ単体での録画資産の消費は(32F5では)出来ないと言う結論でした。 まあこれまでの「旧XBOX+XBMC+D端子接続」でもまあまあ満足のいく環境ではあるのですが。 解決までお付き合い頂き感謝、感謝です。

kon_t
質問者

補足

自分の「お礼」への補足ですが 誤>/etc/minidlna.confを追記して、LD_PRELOADの読み込みと/tmp/minidlna/files.dbの削除を 行うようにしました。 正>/etc/rc.d/init.d/minidlnaを追記して、~ 失礼しました~

すると、全ての回答が全文表示されます。

その他の回答 (3)

  • astronaut
  • ベストアンサー率58% (303/516)
回答No.3

がんばってますね ↓のFTPには、sqliteのバージョンをあげたものと、2009年9月時点のminidlnaの2種類おいてあります。 後者はsqliteのバージョンアップは不要で、うちでは、これであっさり BRAVIA にペンギンが現れています。

すると、全ての回答が全文表示されます。
  • astronaut
  • ベストアンサー率58% (303/516)
回答No.2

パッケージ作ったので良かったらどうぞ ftp://z1.plala.jp/minidlna/

すると、全ての回答が全文表示されます。
  • astronaut
  • ベストアンサー率58% (303/516)
回答No.1

BRAVIA&CentOS使いなので、興味をそそられてやってみました。 ・sqlite 以外のライブラリ依存関係はほぼ普通に yum で解消できたが、libavcodec 等については、ffmpeg-develをインストールしたら解消した、という点が少しトリッキーだった。 ・sqlite については、make の冒頭メッセージで、「バージョンが古い。3.5.1以降を使え」と警告されている。当然、質問者と同様に失敗した。 ・そこで、sqlite の新しいパッケージをインストールした。具体的には次のとおり。  → fedora12 の updates から、src.rpm をもらってきて rebuild.  → この際(たぶん rpm のバージョン互換性のため)md5sumエラーがでて、rpmbuild が走らなかった。  → rpm2cpio で src.rpm の中身を展開して、ソース、パッチ、specファイルを取り出して、所定のディレクトリにコピーして rpmbuild -bb.  → できあがった rpm をインストール これで、minidlna のコンパイルが通りました。 最近になって、新しい sqlite を必要とするようになったのでしょうね。 で、上記は若干強引なので、minidlnaの少し前のスナップショットを使うか、CentOS 6 を待った方がいいかも。 で、それよりなにより、以下から、static バイナリを落として使うのが多分最も簡単かも。  http://sourceforge.net/projects/minidlna/files/minidlna/1.0.18/

kon_t
質問者

お礼

興味を持って頂いて、幸いです。 >・sqlite 以外のライブラリ依存関係はほぼ普通に yum で解消できたが、libavcodec 等については、ffmpeg-develをインストールしたら解消した、という点が少しトリッキーだった。 そうなんです。ffmpegに当たるまで時間くってしまいました。yumは[mencoderに入ってる]とは言うんですが、mencoder関連は最新なのに…と。 >・sqlite については、make の冒頭メッセージで、「バージョンが古い。3.5.1以降を使え」と警告されている。当然、質問者と同様に失敗した。 質問を投稿してからの経緯としては、 1.適当なサイトからsqlite 3.7.4(のfc5だったかな?)のソースを拾ってきて、configureでprefixを/usr/local/bin/に指定して make,make install。 2./usr/local/bin/sqlite/include/sqlite3.hとsqlite3ext.hの中で、質問で「関数が定義されていない」とエラーになる関数が定義されていることを確認。 3.コンパイル時にエラーを吐くminidlna/upnpsoap.cのinclude箇所を上記のsqlite3.7.4の方にフルパスで指定して修正。 …でminidlnaのコンパイルは通ったような気がします。すいませんもう記憶があやふやなもので…。あと操作したとしたら /usr/lib/libsqlite3.soのシンボリックリンクを上記3.7.4に変えてldconfigしたくらい、でもこれは要らなかったかも。 まあとにかくminidlnaのコンパイル(make)は通ったので、checkinstallでrpm化して、rpmをインストール。 /etc/rc.d/init.d/に起動スクリプトを登録していざ起動…。 してるように見えますが、「minidlnaは停止していますがPIDが残っています」とのこと。 ググると、この状態でも起動しているような記述を見つけたので、とりあえず置いておきます。 結果として今のところ、NGです。 BRAVIA 32F5からは見つけてくれません。 CentOS側iptablesを停止させても見つけません。 minidlnaサーバ(固定アドレス)とBRAVIA(DHCP)の間はハブ1個だけ、有線です。 BRAVIAのネットワークは機能しており、NW診断、アクトビラは正常です。 確かにsqliteで「若干強引」な手を使っていますので、yumがsqliteを3.5.1に上げてくれればいいんですけどね。 yumはsqlite-3.3.6-5.i386 で最新だと言い張っておられます。 yumからsqliteを外そうにも、なぜか依存で141パッケージが削除されるようですので止めています。 astronaut様のrpmも試してみましたが、こちらでcheckinstallで作ったrpmと挙動は表面上 変わりません。BRAVIAでやっぱり見つけません。 「netstat -na | grep 8200」で見てみると「CONNECTED」となっています。minidlnaをstopしても同じです。 試しに/etc/minidlna.confのポートを変更してrestartしても、ポートの状態は変化ありません。 明日、staticでやってみたいと思います。

すると、全ての回答が全文表示されます。

関連するQ&A