
Ubuntu日本語フォーラム

ログインしていません。
sonydbを使用したいため、suv でコードをcoしたのですが、ビルドが上手く行きません。
そもそも、自分の環境で出来るものなのかについても良くわかっていない状態です、、、
・ubuntu 8.10 を使用しています。
・suv でsonydbのソースをcheck out しました
# svn co http://svn.coderepos.org/share/lang/c/sonydb
・sonydbのディレクトリに入って、
# sh autogen.sh で configure が作成され
# ./configure で Makefile が作成され
# make で 大量のエラーが、、、
エラー内容:
root@hoge:/home/hoge/workspace/sonydb# make
make all-am
make[1]: ディレクトリ `/home/hoge/workspace/sonydb' に入ります
g++ -DHAVE_CONFIG_H -I. -g -O2 -MT sonydb.o -MD -MP -MF .deps/sonydb.Tpo -c -o sonydb.o sonydb.cpp
sonydb.cpp: In function ‘int STRCMP_NULLOK(const char*, const char*)’:
sonydb.cpp:23: error: ‘strncasecmp’ was not declared in this scope
sonydb.cpp:26: error: ‘strncasecmp’ was not declared in this scope
sonydb.cpp:27: error: ‘strcasecmp’ was not declared in this scope
sonydb.cpp: In function ‘int STRCMP2_NULLOK(const char*, const char*)’:
sonydb.cpp:34: error: ‘strcasecmp’ was not declared in this scope
sonydb.cpp: In function ‘int STRNCMP_NULLOK(const char*, const char*, int)’:
sonydb.cpp:41: error: ‘strncasecmp’ was not declared in this scope
sonydb.cpp: In member function ‘std::vector<Song*, std::allocator<Song*> > SonyDb::getSongsInPlaylist(int)’:
sonydb.cpp:202: error: ‘strdup’ was not declared in this scope
sonydb.cpp:235: error: ‘strdup’ was not declared in this scope
・・・省略・・・(エラー内容終了)
何か、必要なライブラリが足りない、とかそう言った類のエラーなのでしょうか?
ですが、gnumake?に疎いため、全然どうしてよいかわからない状態です、、、
# 当方、bsd系は多少経験あるのですが、linuxは経験が皆無に等しい状態です。
どなたか、ご助言をいただけませんでしょうか?
オフライン
>sonydb.cpp:235: error: ‘strdup’ was not declared in this scope
基本的なヘッダーファイルもインストールされてないようです。
取り合えず、build-essential と データベースなので、zlib1g-dev をインストールし、再度、トライしてみる
(makeファイルを見れば、何が必要か解ると思うが...)
でも ./configure で エラー出てませんでしたか?
オフライン
私はDebian (lenny) を使っていて、なおかつ、svnでチェックアウトという基本的なことを
せず、作者の方のホームページからのリンクのソースをひたすらテキスト形式で、面倒だなと
思いつつダウンロードしたアホなので役に立つか分かりませんが、私も昨日、このプログラムを
知ったばかりで、一発ではうまくいかなかったので、ご参考まで。
>sonydb.cpp:23: error: ‘strncasecmp’ was not declared in this scope
これに関しては、まさにstrncasecmpに関してググったら、string.hではなくstrings.h
というヘッダファイルが必要なようだったので、sonydb.hの<string>の前に(別にあとでも
OKだと思いますが)、<strings.h>を1行入れたら、とりあえずwarningだらけですが、
sonydbができました。
実は、まだwalkmanを買っていないのですが、Windowsは98止まりまでしかもっていないので、
sonydbがコンパイルできたら買おうかなと思っていたので、実際に動くかどうかは、
分かりません。
うまくできたら、報告よろしくです。
オフライン
si さん、
already42!さん
ご情報ありがとうございます。
siさんが教えたくれたパッケージのインストールと、already42!さんの修正に習って以下のように修正したところ、makeが通った所です。
まだ、動作確認していないので、確認後、再度ご報告します。
取り急ぎ、お礼まで。
ちなみに、自分はNW-A605という古いやつで試す予定なので、
already42!さんのご参考になるかどうかは微妙かと(^^;
root@hoge-desktop:/home/hoge/workspace/sonydb# diff -u ../tmp/sonydb/sonydb.h ./sonydb.h
--- ../tmp/sonydb/sonydb.h 2008-12-15 19:57:17.000000000 +0900
+++ ./sonydb.h 2008-12-15 19:55:47.000000000 +0900
@@ -20,6 +20,7 @@
#endif
#endif
#include <stdio.h>
+#include <string.h>
#include <string>
#include <vector>
#include <sys/stat.h>
root@hoge-desktop:/home/hoge/workspace/sonydb#
オフライン
sonydb で、mp3ファイルをプレーヤーに登録して、問題なく再生出来きました。
ただ、(自分の環境や使い方が悪いのかもしれませんが、、)曲名が"unknown"となってしまったり、
sonydbのコマンド(songsadd)で登録したのに、登録した曲を、sonydbのコマンド(songs)で一覧がみれなかったりと、、、
ちょっと使い方が限定されそうです。
ただ単に、放り込んで、流しっぱなしで聞くだけなら全然問題ありません。
以上、事後報告までに。
※重ね重ね、siさん、already42!さん、アドバイスありがとうございましたm(_ _)m
オフライン
rhinoさんレポートありがとうございます。
うーん、微妙な感じですね。
年始の安売りまで考えることにしよう...(笑)
オフライン