zoukankan      html  css  js  c++  java
  • 在go中使用leveldb --levi

    github上有个比较好用的leveldb go wrapper levigo, 安装之前需现在机器上安装leveldb

    当前版本的LevelDB没有带安装脚本,需自行编译安装,过程如下:

    • 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

    不知道为什么,如果把leveldb的相关文件放在/usr/local对应的文件下,安装levigo怎么也通不过,求路过大侠指点迷津。。。

    如果不把leveldb的相关文件放置/usr/对应目录下,用levigo上给出的方案:

    CGO_CFLAGS="-I/path/to/leveldb/include" CGO_LDFLAGS="-L/path/to/leveldb/lib" 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&)'

    这个错误与之前用gcc去编译调用leveldb的C++代码时的错误一致,但一直找不到解决办法。主要是这方面的基础太差了,求路过大虾们指点

  • 相关阅读:
    1、Spring Cloud Alibaba 新一代微服务解决方案
    springboot整合activemq(1)
    11.springboot+mybatis+dubbo+zookepper
    多线程的使用
    Spring 框架用到的 9 个设计模式汇总
    docker数据卷与数据卷容器
    4.GitHub的使用
    Spring Cloud中Hystrix、Ribbon及Feign的熔断关系
    git如何正确回滚代码
    1)Linux学习笔记:crontab命令
  • 原文地址:https://www.cnblogs.com/AndreMouche/p/3279350.html
Copyright © 2011-2022 走看看