VMPlayer:v3.14 OS:CentOS 5.5(i386) チェックアウトディレクトリ:/usr/local/src/subversion (あらかじめ作成) # mkdir /usr/local/src/subversion # cd /usr/local/src/subversion # svn checkout http://leveldb.googlecode.com/svn/trunk/ leveldb-read-only # cd leveldb-read-only # make g++ -c -I. -I./include -DLEVELDB_PLATFORM_POSIX -std=c++0x -O2 -DNDEBUG db/db_bench.cc -o db/db_bench.o cc1plus: error: unrecognized command line option "-std=c++0x" make: *** [db/db_bench.o] エラー 1 # はーいさっそくエラー来ました!! つーか、全然エラー内容がわかりましぇ〜ん c++0x使ってるのか・・・ とりあえず調査だ・・・ 俺は、所詮二番煎じでいい!!キリッ 2011/06/23 追記 ↓---- とりあえず、gcc-4.6.0を入れた (参考テキスト:gcc-build-install.txt) makeファイルの内容を書き換えてみる # cd /usr/local/src/subversion/leveldb-read-only # vi MakeFile 以下の行を変更した (元の行はコメントアウト) CC = g++ → CC = /usr/local/gcc-4.6.0/bin/g++ ※ 注意!! gccのインストール先は、"参考テキスト:gcc-build-install.txt"にしたがった場合になります MakeFileの内容を抜粋 ---- # Copyright (c) 2011 The LevelDB Authors. All rights reserved. # Use of this source code is governed by a BSD-style license that can be # found in the LICENSE file. See the AUTHORS file for names of contributors. #CC = g++ CC = /usr/local/gcc-4.6.0/bin/g++ #----------------------------------------------- # Uncomment exactly one of the lines labelled (A), (B), and (C) below # to switch between compilation modes. OPT = -O2 -DNDEBUG # (A) Production use (optimized mode) # OPT = -g2 # (B) Debug mode, w/ full line-level debugging symbols # OPT = -O2 -g2 -DNDEBUG # (C) Profiling mode: opt, but w/debugging symbols #----------------------------------------------- ・ ・ ・ ・ ---- じゃ、もいっかいmakeしてみる # make /usr/local/gcc-4.6.0/bin/g++ -c -I. -I./include -DLEVELDB_PLATFORM_POSIX -std=c++0x -O2 -DNDEBUG db/db_bench.cc -o db/db_bench.o /usr/local/gcc-4.6.0/libexec/gcc/i686-pc-linux-gnu/4.6.0/cc1plus: error while loading shared libraries: libmpc.so.2: cannot open shared object file: No such file or directory make: *** [db/db_bench.o] エラー 1 gcc-4.6.0をコンパイルするときにも出たな・・・ 以下のコマンドでshared librariesのパスを通す。 # export LD_LIBRARY_PATH=/usr/local/lib # echo $LD_LIBRARY_PATH /usr/local/lib # 参考リンク:http://oshiete.goo.ne.jp/qa/1511011.html よし、もいっかいmakeだ # make /usr/local/gcc-4.6.0/bin/g++ -c -I. -I./include -DLEVELDB_PLATFORM_POSIX -std=c++0x -O2 -DNDEBUG db/db_bench.cc -o db/db_bench.o In file included from ./port/port.h:14:0, from ./util/coding.h:17, from ./db/dbformat.h:13, from ./db/db_impl.h:9, from db/db_bench.cc:8: ./port/port_posix.h:14:22: 致命的エラー: cstdatomic: そのようなファイルやディレクトリはありません コンパイルを停止しました。 make: *** [db/db_bench.o] エラー 1 。 。゜。゜(ノД`)゜。゜。 うわぁ〜ん、致命的エラーとか出てるよ・・・ つーか、これってソース内で読み込んでるファイルがないってこと??? (えっ?えぇぇぇぇ!!) 以下サイト内を"cstdatomic"で検索してみると同じエラーがあり引っかかってくれる 参考リンク:http://d.hatena.ne.jp/tullio/20110531/1306855553 # vi port/port_posix.h 以下のインクルードを変更する (元の行はコメントアウト) #include → #include ソースコード内容の変更後を一部抜粋 ---- // Copyright (c) 2011 The LevelDB Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. See the AUTHORS file for names of contributors. // // See port_example.h for documentation for the following types/functions. #ifndef STORAGE_LEVELDB_PORT_PORT_POSIX_H_ #define STORAGE_LEVELDB_PORT_PORT_POSIX_H_ #include #include #include #include //#include #include #include namespace leveldb { namespace port { ・ ・ ・ ・ ---- またまた、make # make おっ!通ったぽいぞ!! よっしじゃあ、テストを流してみる # ./arena_test ./arena_test: /usr/lib/libstdc++.so.6: version `GLIBCXX_3.4.9' not found (required by ./arena_test) ./arena_test: /usr/lib/libstdc++.so.6: version `GLIBCXX_3.4.10' not found (required by ./arena_test) ・・・ 参考リンク:http://d.hatena.ne.jp/tullio/20110531/1306855553 以下のキーワードでサイト内を検索 検索キーワード:./arena_test デフォルトのgccを見ているようなので、ファイルがないと言われているようです。 以下のようにパスの追加を行う # export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/gcc-4.6.0/lib # echo $LD_LIBRARY_PATH /usr/local/lib:/usr/local/gcc-4.6.0/lib 再度、テストを行う # ./arena_test ==== Test ArenaTest.Empty ==== Test ArenaTest.Simple ==== PASSED 2 tests 通った・・・ 次、DBのテスト・・・ # ./db_test ・ ・ ・ Step 9800 of 10000 2684 entries compared: ok=1 2657 entries compared: ok=1 2684 entries compared: ok=1 Step 9900 of 10000 2705 entries compared: ok=1 2684 entries compared: ok=1 2705 entries compared: ok=1 ==== PASSED 24 tests # エラーは出てないから問題ないようだ・・・ これでインストールはできたけど・・・ どうやって使うんだよ!さっぱりだ!! それに・・・使用する時に以下の設定するのは面倒だな・・・ # export LD_LIBRARY_PATH=/usr/local/lib:/usr/local/gcc-4.6.0/lib はぁ・・・まだまだ課題は山積みだ・・・