上一次帖子说了thrift编译java出现错误,由于只用到cpp版的,就将此略过。但是老版本的ycsb不是很好用,于是决定以locall的方式编译mapkeeper供最新版ycsb使用。目前根据

https://github.com/brianfrankcooper/YCSB/pull/262/files

https://github.com/baonguyen84/YCSB

的说法,在mapkeeper下的thrift中编译出的jar文件拷贝安装到(换名,上面第二个链接)ycsb下就可以用了。

因此,本帖进行对编译java版的错误进行解决。

1. 怀疑是thrift版本的问题。安装的版本是0.9.2,估计需要0.8.0版本。

首先,ll /usr/local/cuda-8.0/lib64 /usr/lib/x86_64-linux-gnu/libfakeroot /usr/local/lib /lib/x86_64-linux-gnu /usr/lib/x86_64-linux-gnu /usr/lib/nvidia-375 /usr/lib32/nvidia-375 /lib32 /usr/lib32 /lib /usr/lib |grep thrift

发现有很多thrift包,而且很多是0.9.2版本的,这些是手动安装的,在0.9.2版本下进行make uninstall后删除了大部分,并且再次在mapkeeper thrift下make时就出现了make: /usr/local/bin/thrift: Command not found 的错误。

然后在手动把其他的删除掉(目录 /usr/local/lib)

2. 装0.8.0的问题

首先是 LoadError: cannot load such file — spec/rake/spectask

/home/lds/mapkeeper/thrift-0.8.0/lib/rb/Rakefile:24:in `<top (required)>'

根据 https://stackoverflow.com/questions/25622488/loaderror-cannot-load-such-file-spec-rake-spectask-fedena 将  Rakefile 进行了修改

仍然是该错误,只是  spec/rake/spectask 换成了  rspec/core/rake_task

再根据 https://stackoverflow.com/questions/30114733/loaderror-cannot-load-such-file-rspec-core-rake-task

After : sudo gem install bundler

I created a Gemfile with:

gem 'rake'
gem 'rspec'
gem 'kramdown'

and did bundle install . Now I dont get the error.

这个操作要根据 https://stackoverflow.com/questions/30358612/how-to-create-a-gemfile 这个来,也就是随便找个目录创建这个文件,然后在此目录运行  bundle install 。

成功后,再次make,出现

rake aborted!
NameError: uninitialized constant Spec
Did you mean? RSpec

3.

卸载新的rspec,装老的

https://guleriay2k.wordpress.com/2011/04/26/after-installing-rspec-if-you-get-no-such-file-to-load-specrakespectask/

https://www.reddit.com/r/ruby/comments/3ess4g/how_to_uninstall_rspec/

sudo gem install -v=1.3.0 rspec

还是没有解决

4. 最终,直接在thrift编译时选择不要ruby

https://stackoverflow.com/questions/13498721/cannot-build-apache-thrift-due-to-ruby-rake-errors

$ ./configure --without-ruby

 成功解决,成功编译了thrift 0.8.0

make instal 成功

5. 此时在mapkeeper下的thrift中make时,会出现uint32_t 未定义等错误,这是生成c++时的错误。

    此时,跳过编译c++,直接进入gen-java进行 mvn clean package

成功,生成了mapkeeper-1.1-SNAPSHOT.jar

thrift编译java的问题-(安装thrift0.8.0成功-编译mapkeeper.java成功)的更多相关文章

  1. Thrift0.11.0基于Intellij IDEA的简单的例子

    前言 目前流行的服务调用方式有很多种,例如基于 SOAP 消息格式的 Web Service,基于 JSON 消息格式的 RESTful 服务等.其中所用到的数据传输方式包括 XML,JSON 等,然 ...

  2. CefSharp基于.Net Framework 4.0 框架编译

    CefSharp基于.Net Framework 4.0 框架编译 本次源码使用的是Github上CefSharp官方的79版本源码 准备 IDE Visual Studio 2017 Enterpr ...

  3. Apache Thrift 在Windows下的安装与开发

    Windows下安装Thrift框架的教程很多.本文的不同之处在于,不借助Cygwin或者MinGW,只用VS2010,和Thrift官网下载的源文件,安装Thrift并使用. 先从官网 下载这两个文 ...

  4. hadoop-2.2.0 的编译安装及HA配置

    一 准备工作 准备工作中要求有 1.centOs 6.4,添加hadoop用户,配置集群内的/etc/hosts文件. 2.安装hadoop用户的ssh,并打通集群内所有机器,(ha执行fencing ...

  5. Java学习-001-JDK安装配置

    本节主要讲述在 Win7 64bit 系统下安装.配置 JDK8u25,敬请参阅.详细步骤如下: 一.JDK下载 您可到 官方网站 或 我的云盘 下载,对应的JDK8u25的安装程序,下载过程不再赘述 ...

  6. 【转】ubuntu下安装eclipse以及配置python编译环境

    原文网址:http://blog.csdn.net/wangpengwei2/article/details/17580589 一.安装eclipse 1.从http://www.eclipse.or ...

  7. 在CUDA8.0下编译安装OpenCV3.1.0来实现GPU加速(Compiling OpenCV3.1.0 with CUDA8.0 support)

    在CUDA8.0下编译安装OpenCV3.1.0 一.本人电脑配置:ubuntu 14.04, NVIDIA GTX1060. 二.编译OpenCV3.1.0前,读者需要成功安装CUDA8.0(网上有 ...

  8. Java基础:Java简介及安装配置(1)

    Java简介 Java是Sun公司于1995年推出的高级编程语言,具有跨平台特性,编译后的程序能够运行在多种类型的操作系统平台上. 1.1 Java应用程序版本 Java的3个独立用于开发不同类型应用 ...

  9. Thrift-0.10.0 CenOS 7 编译错误 error: expected ')' before 'PRIu32'

    Thrift-0.10.0 CenOS 7 编译错误 error: expected ')' before 'PRIu32' 在编译Thrift的时候,无论是Apache官网tar包,还是Github ...

随机推荐

  1. Maven的构建生命周期理解

    以下引用官方的生命周期解释https://maven.apache.org/guides/introduction/introduction-to-the-lifecycle.html: 一.构建生命 ...

  2. 数组对象(NSArray和NSMutableArrray)

    Objective-C中除了可以使用C中的基本数组外,如int[5],char word[] ={‘a’,'b’,'c’};Foundation还提供了NSArray类.Foundation是有序的对 ...

  3. Android 检查输入

    在开发过程中,会经常遇到这样的需求:上面有很多的输入控件,等所有的输入都合法后,按钮才能自动变成enabled的状态,才能继续下一步的操作. 下面是一种用观察者模式实现的一种解决方案. button代 ...

  4. python入门之搭建环境

    进入以下网站:python.org 选择你喜欢(需要)的版本下载 点击下载即可,本次提供下载:python3.6.3 (国外架设,非常慢) ,用百度的平台吧:python3.6.1,多谢百度. 开始安 ...

  5. vue 给组件绑定原生事件

    有时候,你可能想在某个组件的根元素上监听一个原生事件.可以使用 v-on 的修饰符 .native.例如: <my-component v-on:click.native="doThe ...

  6. adb命令具体解释(二)——手机缺失sqlite3时操作数据库的多种解决方式

    在android应用开发无处不在SQLite数据库的身影.那么在开发中怎么使用adb命令操作数据库的功能呢? 以下我们将完整的介绍与数据库操作相关的命令集及当手机缺少sqlite3的时候的多种解决方式 ...

  7. GG链路过多port不足导致的报错OGG-01223

    假设我们GG同步链路在增多.就有可能出现这个报错.在日志中能体现. 2014-05-20 13:32:38 WARNING OGG-01223 TCP/IP error 111 (Connection ...

  8. 【机器学习算法-python实现】PCA 主成分分析、降维

    1.背景         PCA(Principal Component Analysis),PAC的作用主要是减少数据集的维度,然后挑选出基本的特征.         PCA的主要思想是移动坐标轴, ...

  9. wordpress系列1:安装

    https://wordpress.org/download/release-archive/ 官方中文网站:https://cn.wordpress.org/ readme.html文件,可查看Wo ...

  10. 《UNIX 环境高级编程》编译环境的搭建( 运行本专栏代码必读 )

    第一步:搭建基本的编译环境 安装gcc, g++, bulid-essential等编译软件 第二步:下载本书示例源码包 可在这里下载 www.apuenook.com 第三步:解压下载到的包并放在用 ...