VMPlayer:v3.14
OS:CentOS 5.5(i386)
チェックアウトディレクトリ:/usr/local/src/subversion (あらかじめ作成)
levelDBの説明記事:http://www.publickey1.jp/blog/11/nosqlleveldbchromeindexeddb.html
# 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を入れた
(参考リンク:http://blog.goo.ne.jp/darui_kara/e/f671b4751340948539a9f2f159f72803)
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 <cstdatomic> → #include <atomic>
ソースコード内容の変更後を一部抜粋
----
// 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 <endian.h>
#include <pthread.h>
#include <stdint.h>
#include <string>
//#include <cstdatomic>
#include <atomic>
#include <cstring>
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
はぁ・・・まだまだ課題は山積みだ・・・
インストールメモのテキスト→ダウンロード
| /:./:.:.:.:/:.:.:/:.|:.|:.:.| ヽヽ::\.:.:.::\:.::.:.:.ヽ.::.:.:.:.ヽ.:.:..|::.:.:.:.:.:.:.:.:.:|
| |:.:|:.:.:.:.|:.:.:.|i:.ハハ:.:| ヽ ャ 廾 十:ト 、.:..ヽ.:.::.:.:.|:.:..|:.:.:.:.:.:.:.:.:.:.:|
| i:.:|:.:.:.:.|:.:.:.||,|ィ爪「 \\ =≠z.\:`:.|:.:.:.:.:.|:./|::.:.:.:.:.:.:.:.:.:.:|
i. |:.|:.:.:.:.|:.:.:.|リ レ≠=ミ / {r':::::::i\ヽ|::.:.::.:.|/ |:.:..:.:i:.:.:.:.:.:.:|
|:.|:.:.:.:.|:.:.:ハ /|r'::::::::} レv:::::::ri}/ |:..|:.:.ハ |.:.:.:.:.i:..:.:.:.:.:|
|:.|:.:.:.:.|:.:.:.ハヽVヽ_r'} _辷__r,タ |:.:|/ | .i::.:.:.:.i::.:.:.:.:.:|
ヽ!N:.:.|:.:.:.:.ハ ゝ- '' :::::::::: /|:.:| / |:.:.:.:.:i::.:.:.:.:.:|
ヽ.ヽ:Nヽ:.:ハ ::::::::: ヽ /.:.|./ i.:.:.:.:.:i::.:.:.:.:.:|
\ |:.人 v ― ァ /:.:.:.|. |:..:.:.:.:i::..:.:.:.:.|
ヽハ:.:.:| \ ` ー / |:.:.:./ |.:.:.:.:.:i::..:::.:.:.|
i |:.:.| ヽ、_ _,. ' ,. |:.:/ .|:.:.:.:.::i::.:.:.:.:..|
ヽ:| | ` ´ ,. '´ /:.ム |.:.:.:.:.:i:.:.:.:.:./
ヽ |` ーr‐'´ /:./ \ |:.:.:.:.:.i:..:..:./
頑張って!!
OS:CentOS 5.5(i386)
チェックアウトディレクトリ:/usr/local/src/subversion (あらかじめ作成)
levelDBの説明記事:http://www.publickey1.jp/blog/11/nosqlleveldbchromeindexeddb.html
# 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を入れた
(参考リンク:http://blog.goo.ne.jp/darui_kara/e/f671b4751340948539a9f2f159f72803)
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 <cstdatomic> → #include <atomic>
ソースコード内容の変更後を一部抜粋
----
// 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 <endian.h>
#include <pthread.h>
#include <stdint.h>
#include <string>
//#include <cstdatomic>
#include <atomic>
#include <cstring>
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
はぁ・・・まだまだ課題は山積みだ・・・
インストールメモのテキスト→ダウンロード
| /:./:.:.:.:/:.:.:/:.|:.|:.:.| ヽヽ::\.:.:.::\:.::.:.:.ヽ.::.:.:.:.ヽ.:.:..|::.:.:.:.:.:.:.:.:.:|
| |:.:|:.:.:.:.|:.:.:.|i:.ハハ:.:| ヽ ャ 廾 十:ト 、.:..ヽ.:.::.:.:.|:.:..|:.:.:.:.:.:.:.:.:.:.:|
| i:.:|:.:.:.:.|:.:.:.||,|ィ爪「 \\ =≠z.\:`:.|:.:.:.:.:.|:./|::.:.:.:.:.:.:.:.:.:.:|
i. |:.|:.:.:.:.|:.:.:.|リ レ≠=ミ / {r':::::::i\ヽ|::.:.::.:.|/ |:.:..:.:i:.:.:.:.:.:.:|
|:.|:.:.:.:.|:.:.:ハ /|r'::::::::} レv:::::::ri}/ |:..|:.:.ハ |.:.:.:.:.i:..:.:.:.:.:|
|:.|:.:.:.:.|:.:.:.ハヽVヽ_r'} _辷__r,タ |:.:|/ | .i::.:.:.:.i::.:.:.:.:.:|
ヽ!N:.:.|:.:.:.:.ハ ゝ- '' :::::::::: /|:.:| / |:.:.:.:.:i::.:.:.:.:.:|
ヽ.ヽ:Nヽ:.:ハ ::::::::: ヽ /.:.|./ i.:.:.:.:.:i::.:.:.:.:.:|
\ |:.人 v ― ァ /:.:.:.|. |:..:.:.:.:i::..:.:.:.:.|
ヽハ:.:.:| \ ` ー / |:.:.:./ |.:.:.:.:.:i::..:::.:.:.|
i |:.:.| ヽ、_ _,. ' ,. |:.:/ .|:.:.:.:.::i::.:.:.:.:..|
ヽ:| | ` ´ ,. '´ /:.ム |.:.:.:.:.:i:.:.:.:.:./
ヽ |` ーr‐'´ /:./ \ |:.:.:.:.:.i:..:..:./
頑張って!!