如何使用levigo

时间:2013-08-23 03:21:11

标签: go leveldb

我想在go中使用leveldb,找到levigo工具 我尝试使用follow命令构建

  

去获取github.com/jmhodges/levigo

然后我失败了,错误:

/home/fun/workspace/study/leveldb/test/libleveldb.a(env_posix.o): In function `leveldb::(anonymous namespace)::StartThreadWrapper(void*)':
env_posix.cc:(.text+0x1e): undefined reference to `operator delete(void*)'
/home/fun/workspace/study/leveldb/test/libleveldb.a(env_posix.o): In function `leveldb::(anonymous namespace)::PosixEnv::NewLogger(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, leveldb::Logger**)':
env_posix.cc:(.text+0x10c): undefined reference to `operator new(unsigned long)'
/home/fun/workspace/study/leveldb/test/libleveldb.a(env_posix.o): In function `leveldb::(anonymous namespace)::PosixEnv::NewSequentialFile(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, leveldb::SequentialFile**)':
env_posix.cc:(.text+0x1e1): undefined reference to `operator new(unsigned long)'
env_posix.cc:(.text+0x1f7): undefined reference to `std::basic_string<char, std::char_traits<char>, std::allocator<char> >::basic_string(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)'

然后我尝试运行:

  

CGO_CFLAGS =“ - I / path / to / leveldb / include”CGO_LDFLAGS =“ - L / path / to / leveldb / lib”go get github.com/jmhodges/levigo

它不起作用并报告几乎相同的错误。 有谁知道发生了什么以及如何解决它? 谢谢。

2 个答案:

答案 0 :(得分:2)

这是我的levigo安装:

$ uname -a
Linux peter 3.8.0-27-generic #40-Ubuntu SMP Tue Jul 9 00:17:05 UTC 2013 x86_64 x86_64 x86_64 GNU/Linux
$ go version
go version devel +037a28ab0725 Thu Aug 22 12:13:54 2013 +0900 linux/amd64
$ sudo apt-get install libleveldb-dev
Reading package lists... Done
Building dependency tree       
Reading state information... Done
libleveldb-dev is already the newest version.
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
$ go get -v github.com/jmhodges/levigo
github.com/jmhodges/levigo (download)
github.com/jmhodges/levigo
$

如果运行这些命令,会得到什么输出?

答案 1 :(得分:2)

这是我的安装,它成功运作:

  • 安装leveldb:

      

    $ tar zxvf leveldb-1.12.0.tar.gz

         

    $ leveldb-1.12.0 /

         

    $ make

         

    $ sudo cp -r include / leveldb / usr / include /

         

    $ sudo cp libleveldb。* / usr / lib /

  • 安装levigo:

      

    $ go get github.com/jmhodges/levigo