如何使用levigo

huangapple go评论97阅读模式
英文:

How to use levigo

问题

我想在Go语言中使用leveldb,并找到了levigo工具。
我尝试使用以下命令进行构建:

go get 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

但是它没有起作用,并报告了几乎相同的错误。有人知道发生了什么以及如何修复吗?谢谢。

英文:

I want to use leveldb in go,and find the levigo tool
I try to build with the follow command

> go get github.com/jmhodges/levigo

Then I got failed with error:

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

then I try to run :

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

it does not work and report almost the same error .
anybody know what happened and how to fix it?
thank you.

答案1

得分: 2

以下是这些命令的输出:

$ 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
正在读取软件包列表... 完成
正在构建依赖关系树       
正在读取状态信息... 完成
libleveldb-dev 已经是最新版。
升级了 0 个软件包,新安装了 0 个软件包,要卸载 0 个软件包,有 0 个软件包未被升级。
$ go get -v github.com/jmhodges/levigo
github.com/jmhodges/levigo (下载)
github.com/jmhodges/levigo
$
英文:

Here's my installation of 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
$

What output do you get if you run these commands?

答案2

得分: 2

以下是翻译好的内容:

这是我的安装步骤,并且成功地运行了:

  • 安装leveldb:

$ tar zxvf leveldb-1.12.0.tar.gz

$ cd leveldb-1.12.0/

$ make

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

$ sudo cp libleveldb.* /usr/lib/

  • 安装levigo:

$ go get github.com/jmhodges/levigo

英文:

Here is my installation and it worked successfully:

  • install 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/

  • install levigo:

> $ go get github.com/jmhodges/levigo

huangapple
  • 本文由 发表于 2013年8月23日 11:21:11
  • 转载请务必保留本文链接:https://go.coder-hub.com/18394177.html
匿名

发表评论

匿名网友

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

确定