• ベストアンサー
※ 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

  • sendmailのコンパイルエラーについて

    教えてください。>_< お願いします。 sendmail-8.12.2のインストールを試みたのですが、 エラーが返ってきます。 このエラーの意味、対処法などご存知の方 教えてください。 <エラー内容> domain.o: In function `getmxrr': domain.o(.text+0x25f): undefined reference to `__res_query' domain.o(.text+0x266): undefined reference to `__res_search' domain.o(.text+0x39b): undefined reference to `__dn_skipname' domain.o(.text+0x496): undefined reference to `__dn_expand' domain.o(.text+0x603): undefined reference to `__dn_expand' domain.o: In function `dns_getcanonname': domain.o(.text+0xf0c): undefined reference to `__res_querydomain' domain.o(.text+0x100f): undefined reference to `__dn_skipname' domain.o(.text+0x123f): undefined reference to `__dn_expand' domain.o(.text+0x128a): undefined reference to `__dn_expand' sm_resolve.o: In function `parse_dns_reply': sm_resolve.o(.text+0x17e): undefined reference to `__dn_expand' sm_resolve.o(.text+0x1fe): undefined reference to `__dn_expand' sm_resolve.o(.text+0x2e5): undefined reference to `__dn_expand' sm_resolve.o(.text+0x337): more undefined references to `__dn_expand' follow sm_resolve.o: In function `dns_lookup_int': sm_resolve.o(.text+0x612): undefined reference to `__res_search' collect2: ld returned 1 exit status make: *** [sendmail] エラー1 gccはバージョン2.96-81です。 OSはRedhatLinux7.1Jです。 よろしくお願いします。m(_)m

  • Fedora7で libpthread.aをリンクすると、コンパイルエラーになってしまいました

    はじめまして、 Fedora7でマルチスレッドのプログラムをビルドし、 libpthread.aをリンクしたところ、コンパイルエラーになってしまいました。 Fedora4~5では、起きなかったため、 libpthread.aのバージョン変更により、問題がおきたのではないかと思っております。 libpthreadのバージョンは2.6-4で [root@localhost]# rpm -qf /usr/lib/libpthread.a glibc-devel-2.6-4 glibc-develをダウングレードしようと思いましたが、 glibc-commonの依存関係が厳しく、forceしてもうまくいきませんでした。 makeのエラーは下記の内容で、main.cppにlibpthread.aをリンクしてビルドすると、 libpthread.a内で使ってる関数がundefinedでこけてしまいます。 ネットを検索して、pthreadのについて書かれているサイトを読みましたが、あまり見つからずどうして良いやらわからない状態です。 ttp://uyota.asablo.jp/blog/2007/01/27/1142762 Fedora7でlibpthread.aをリンクし、 undefinedを回避して、うまくビルドする方法をご存知でしたら、お教えください。 ---------------- エラー内容 [root@localhost test]# make make clean make[1]: ディレクトリ `/src/test' に入ります rm Main.o removed `Main.o' make[1]: ディレクトリ `/src/test' から出ます make test make[1]: ディレクトリ `/src/test' に入ります g++ -c -o Main.o Main.cpp g++ -o test Main.o /usr/lib/libpthread.a -lpthread /usr/lib/libpthread.a(pthread_create.o): In function `pthread_create': (.text+0xca3): undefined reference to `_dl_stack_flags' /usr/lib/libpthread.a(pthread_create.o): In function `pthread_create': (.text+0x1126): undefined reference to `_dl_stack_flags' /usr/lib/libpthread.a(ptw-accept.o): In function `accept': (.text+0x23): undefined reference to `__syscall_error' /usr/lib/libpthread.a(ptw-accept.o): In function `accept': (.text+0x52): undefined reference to `__syscall_error' /usr/lib/libpthread.a(ptw-send.o): In function `__send': (.text+0x23): undefined reference to `__syscall_error' /usr/lib/libpthread.a(ptw-send.o): In function `__send': (.text+0x52): undefined reference to `__syscall_error' /usr/lib/libpthread.a(ptw-pause.o): In function `__pause_nocancel': (.text+0x18): undefined reference to `__syscall_error' /usr/lib/libpthread.a(ptw-pause.o):(.text+0x3b): more undefined references to `__syscall_error' follow /usr/lib/libpthread.a(init.o): In function `__pthread_initialize_minimal': (.text+0x16c): undefined reference to `__libc_setup_tls' /usr/lib/libpthread.a(init.o): In function `__pthread_initialize_minimal': (.text+0x328): undefined reference to `_dl_init_static_tls' /usr/lib/libpthread.a(init.o): In function `__pthread_initialize_minimal': (.text+0x34d): undefined reference to `_dl_wait_lookup_done' /usr/lib/libpthread.a(ptw-read.o): In function `__read_nocancel': (.text+0x26): undefined reference to `__syscall_error' /usr/lib/libpthread.a(ptw-read.o): In function `__read_nocancel': (.text+0x56): undefined reference to `__syscall_error' /usr/lib/libpthread.a(ptw-open.o): In function `__open_nocancel': (.text+0x26): undefined reference to `__syscall_error' /usr/lib/libpthread.a(ptw-open.o): In function `__open_nocancel': (.text+0x56): undefined reference to `__syscall_error' /usr/lib/libpthread.a(sigaction.o): In function `__libc_sigaction': (.text+0x60): undefined reference to `_dl_sysinfo_dso' /usr/lib/libpthread.a(sigaction.o): In function `sigaction': (.text+0x19a): undefined reference to `_dl_sysinfo_dso' collect2: ld はステータス 1 で終了しました make[1]: *** [test] エラー 1 make[1]: ディレクトリ `/src/test' から出ます make: *** [build] エラー 2 -- [root@localhost]# cat /etc/ld.so.conf /usr/lib include ld.so.conf.d/*.conf

  • プログラミングのコンパイルで・・・・・

    C言語でのコンパイルで /tmp/cckxNO3W.o(.text+0xce): In function `main': : undefined reference to `hukeisan' collect2: ld はステータス 1 で終了しました と出るのですがどうしたらいいですか。教えてください。

  • コンパイル時のエラー

    UNIXでサーバー、クライアントのCプログラミングをテキストどおりに書いてコンパイルしたのですが、以下のエラーが出ます。gcc, ccでコンパイルすると以下のようになるのですが、これはどういうことなのでしょうか?何が原因なのでしょうか?よろしくお願いいたします。 gcc unix_server.c /var/tmp/ccvpay1f1.o: In function `main': /var/tmp/ccvpay1f1.o(.text+0x8c): undefined reference to `socket' /var/tmp/ccvpay1f1.o(.text+0x104): undefined reference to `unllnk' /var/tmp/ccvpay1f1.o(.text+0x118): undefined reference to `bind' /var/tmp/ccvpay1f1.o(.text+0x150): undefined reference to `listen' /var/tmp/ccvpay1f1.o(.text+0x1a8): undefined reference to `accept' cc unix_server.c ld: /usr/lib/cmplrs/cc/crtn.o: Error: Unresolved: rindex socket bzero bcopy unllnk bind listen accept

  • c言語 コンパイルエラー

    以下webページに載っているC言語のプログラムをコンパイルした時に ”/tmp/cchzThVk.o: In function 'c_to_sh': 5.c:(.text+0x5b3): undefined reference to 'sqrt' 5.c:(.text+0x64e): undefined reference to 'atan2' collect2: Id は ステータス1で終了しました。” とメッセージが出るのですが、このメッセージが出たときはプログラムにミスがあるということなのでしょうか。教えてくださいお願いします。 http://plaza.rakuten.co.jp/dragonkkk

  • MySQL接続を行うソースのコンパイルが出来ず苦しんでます

    皆さん、こんにちは。 C++でソースを書いています。 内容としてはMySQLに接続し、 DBから得たデータを表示するソースなので、 以下のように、 「mysql.h」をヘッダでインクルードしているわけなのですが、 --------------------- #include <mysql.h> --------------------- 作ったソースをmakeしようとすると、 次のように、 DB接続に必要と思いソース内で使用した、 以下の変数について、undefined referenceで怒られてしまいます。 ------------------------------------------------ /home/test/dbtest.cpp:178: undefined reference to `mysql_init' /home/test/dbtest.cpp:181: undefined reference to `mysql_real_connect' /home/test/dbtest.cpp:182: undefined reference to `mysql_error' /home/test/dbtest.cpp:188: undefined reference to `mysql_query' /home/test/dbtest.cpp:189: undefined reference to `mysql_error' /home/test/dbtest.cpp:193: undefined reference to `mysql_use_result' /home/test/dbtest.cpp:197: undefined reference to `mysql_free_result' /home/test/dbtest.cpp:198: undefined reference to `mysql_close' ------------------------------------------------ そこで、下記URLの内容にあるエラー内容と 完全に同じでしたので、 「libmysqlclient.so」へのパスを通そうと思いました。 http://dev.mysql.com/doc/refman/4.1/ja/link-errors.html ということで、 findで「libmysqlclient.so」のパスを調べ、 makeの際に、-Iでディレクトリを指定しなおしましたが、 やはり、同じエラーが表示されます。 ------------------------------------------------ # find / -name "libmysqlclient.so" -print /usr/lib/mysql/libmysqlclient.so # make -I /usr/lib/mysql/libmysqlclient.so ------------------------------------------------ どうしていいか分からず困ってしまいました。 初心者で初歩的な部分かもしれませんが、 何かアドバイスいただけると とてもありがたいです。 どうぞ宜しくお願い致します。 OSはFedora9です。 viでソースを編集しながら、 makeをしたりしています。

  • tcpserverをインストールできない。

    qmailとtcpserverでメールサーバを構築しようとしています。 qmailのほうはうまくいきました。送信はできます。 pop接続用にtcpserverを使おうとしてるんですが ucspi-tcp-0_84.tar.gzを展開して make setup check を行うと次のようなエラーメッセージが出てインストールできません。 考えられる原因はなんでしょうか? ./load tcpclient ip.o ipalloc.o dns.o remoteinfo.o \ timeoutconn.o timeoutread.o timeoutwrite.o getopt.a \ strerr.a stralloc.a env.a alloc.a ndelay.a substdio.a \ error.a str.a sig.a fd.a case.a fs.a `cat dns.lib` `cat \ socket.lib` dns.o: In function `resolve': dns.o(.text+0x11f): undefined reference to `__dn_expand' dns.o: In function `findname': dns.o(.text+0x1c1): undefined reference to `__dn_expand' dns.o(.text+0x23a): undefined reference to `__dn_expand' dns.o: In function `findip': dns.o(.text+0x2c1): undefined reference to `__dn_expand' dns.o: In function `findmx': dns.o(.text+0x3c5): undefined reference to `__dn_expand' dns.o(.text+0x460): more undefined references to `__dn_expand' follow dns.o: In function `dns_init': dns.o(.text+0x4b5): undefined reference to `__res_search' dns.o(.data+0xc): undefined reference to `__res_query' collect2: ld returned 1 exit status make: *** [tcpclient] エラー1 OSはTurboLinux7です。

  • Linux GTK+でのコンパイルエラー

    GKT+でプログラミングをしたいと思い、下記のサイトを見ながらサンプルプログラムをコンパイルしたら下のようなエラーが表示されました。原因が全くわからず困っています。わかる方教えてください。 【参考にしたサイト】 http://samidarehetima.web.fc2.com/howtogtk/top.html#toc_1 【コード】 #include <gtk/gtk.h> //ボタンがクリックされたときに呼び出される関数 static void button_clicked(GtkWidget *button, gpointer user_data) { gtk_main_quit(); } int main(int argc, char** argv){ GtkWidget *window; gtk_init(&argc,&argv); window = gtk_window_new(GTK_WINDOW_TOPLEVEL); gtk_widget_set_size_request(window,300,200); { //ボタンを作成する。 GtkWidget *button; button = gtk_button_new_with_label("Quit"); //ボタンをwindowに乗っける。 gtk_container_add(GTK_CONTAINER(window), button); //ボタンにclickedと表示し,押された時はbutton_clicked()を呼び出す。 g_signal_connect (G_OBJECT(button), "clicked" , G_CALLBACK(button_clicked), NULL); } g_signal_connect(window, "destroy", G_CALLBACK(gtk_main_quit), NULL); //windowの上にある物も全て表示する。(_allが付くことに注意) gtk_widget_show_all(window); gtk_main(); return 0; } 【エラー】 /tmp/ccmjmPda.o: In function `button_clicked': test.c:(.text+0x7): undefined reference to `gtk_main_quit' /tmp/ccmjmPda.o: In function `main': test.c:(.text+0x25): undefined reference to `gtk_init' test.c:(.text+0x31): undefined reference to `gtk_window_new' test.c:(.text+0x51): undefined reference to `gtk_widget_set_size_request' test.c:(.text+0x5d): undefined reference to `gtk_button_new_with_label' test.c:(.text+0x66): undefined reference to `gtk_container_get_type' test.c:(.text+0x76): undefined reference to `g_type_check_instance_cast' test.c:(.text+0x86): undefined reference to `gtk_container_add' test.c:(.text+0x9f): undefined reference to `g_type_check_instance_cast' test.c:(.text+0xcb): undefined reference to `g_signal_connect_data' test.c:(.text+0xeb): undefined reference to `gtk_main_quit' test.c:(.text+0xff): undefined reference to `g_signal_connect_data' test.c:(.text+0x10b): undefined reference to `gtk_widget_show_all' test.c:(.text+0x110): undefined reference to `gtk_main' collect2: ld はステータス 1 で終了しました

  • LinuxのgccのLIBパス? (類似質問)

    Linuxのgccで、LIBのパスを設定する方法が知りたいのですが、gccについて詳しい書籍やサイトがありましたら、教えてください。 例)gcc -I/usr/local/example/include test.c /tmp/ccOFpCBo.o(.text+0x26): In function `main': : undefined reference to `EXAMPLE_1' /tmp/ccOFpCBo.o(.text+0x37): In function `main': : undefined reference to `EXAMPLE_2' /tmp/ccOFpCBo.o(.text+0x48): In function `main': : undefined reference to `EXAMPLE_3' collect2: ld はステータス1で終了しました。 また、ldとはVC6++でいう LINKのことでしょうか?

  • PHP4.3.0でmake時にエラー

    RPMでインストールされていた、PHP4.2.3を削除し、 ソースからのインストールを試しています。 そのPHP4.3.0のmake時にエラーが発生します。 ・Configure --with-apxs=/usr/sbin/apxs --enable-mbstring --enable-mbregex --enable-versioning --with-pgsql=shared --with-config-file-path=/etc/httpd/conf --enable-safe-mode --with-mysql=shared --with-zlib=shared --enable-zend-multibyte ---- エラー内容 ---- ext/standard/image.lo: In function `php_handle_swc': /home/.users/112/admin/php-4.3.0/ext/standard/image.c:197: undefined reference to `uncompress' /home/.users/112/admin/php-4.3.0/ext/standard/image.c:218: undefined reference to `uncompress' main/SAPI.lo: In function `sapi_header_op': /home/.users/112/admin/php-4.3.0/main/SAPI.c:529: undefined reference to `zlib_globals' main/SAPI.lo: In function `sapi_send_headers': /home/.users/112/admin/php-4.3.0/main/SAPI.c:676: undefined reference to `zlib_globals' collect2: ld returned 1 exit status make: *** [sapi/cli/php] Error 1 エラー文から検索してみたのですが、解決に至る情報が見つかりませんでした。 先にPHP3.0.18-i18n-ja-3をソースからインストールしてあるのですが、 これは正常にインストール出来ました。 Configureオプションを減らしてみたのですが、エラー文は変わりませんでした。 make cleanしてmakeしてもも駄目でした。 OS:TurboLinux 8

    • ベストアンサー
    • PHP