上一次帖子说了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

最新文章

  1. .net core 用grpc实现微服务
  2. apache中虚拟主机的配置
  3. HTML简明教程(二)
  4. 优秀c++开源项目集合
  5. Object类、instanceof
  6. php 时间转化总结
  7. SPRING IN ACTION 第4版笔记-第九章Securing web applications-008-使用非关系型数据库时如何验证用户(自定义UserService)
  8. 再回首,Java温故知新(六):Java基础之变量
  9. Java菜鸟学习笔记--数组篇(三):二维数组
  10. 浅析java的浅拷贝和深拷贝
  11. C#异步Socket示例
  12. 3D VR卡镜的使用方法
  13. tp框架的详细介绍,tp框架基础
  14. 精华【分布式、微服务、云架构、dubbo+zookeeper+springmvc+mybatis+shiro+redis】分布式大型互联网企业架构!
  15. git 版本控制的简单应用
  16. c# winform导出Excel
  17. ES--03
  18. DateFormat抽象类实现日期与字符串的转换
  19. sqlServer自动代码提示功能
  20. golang 内存占用测量

热门文章

  1. Java使用logback记录日志时分级别保存文件
  2. Android Framework 记录之一
  3. Android自定义控件之自定义组合控件(三)
  4. 阿里云云服务器ubuntu配置nginx+uwsgi+django记录文档
  5. 怎么在SQL查询的结果里加行号?
  6. Vue.js 使用cordova camera插件调取相机
  7. C#中??和?分别是什么意思? 在ASP.NET开发中一些单词的标准缩写 C#SESSION丢失问题的解决办法 在C#中INTERFACE与ABSTRACT CLASS的区别 SQL命令语句小技巧 JQUERY判断CHECKBOX是否选中三种方法 JS中!=、==、!==、===的用法和区别 在对象比较中,对象相等和对象一致分别指的是什么?
  8. SD 卡PIN定义
  9. Laravel建站05--缓存、时间日期处理包
  10. 最简单的基于FFmpeg的移动端样例附件:SDL Android HelloWorld