thrift编译java的问题-(安装thrift0.8.0成功-编译mapkeeper.java成功)
上一次帖子说了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
最新文章
- .net core 用grpc实现微服务
- apache中虚拟主机的配置
- HTML简明教程(二)
- 优秀c++开源项目集合
- Object类、instanceof
- php 时间转化总结
- SPRING IN ACTION 第4版笔记-第九章Securing web applications-008-使用非关系型数据库时如何验证用户(自定义UserService)
- 再回首,Java温故知新(六):Java基础之变量
- Java菜鸟学习笔记--数组篇(三):二维数组
- 浅析java的浅拷贝和深拷贝
- C#异步Socket示例
- 3D VR卡镜的使用方法
- tp框架的详细介绍,tp框架基础
- 精华【分布式、微服务、云架构、dubbo+zookeeper+springmvc+mybatis+shiro+redis】分布式大型互联网企业架构!
- git 版本控制的简单应用
- c# winform导出Excel
- ES--03
- DateFormat抽象类实现日期与字符串的转换
- sqlServer自动代码提示功能
- golang 内存占用测量
热门文章
- Java使用logback记录日志时分级别保存文件
- Android Framework 记录之一
- Android自定义控件之自定义组合控件(三)
- 阿里云云服务器ubuntu配置nginx+uwsgi+django记录文档
- 怎么在SQL查询的结果里加行号?
- Vue.js 使用cordova camera插件调取相机
- C#中??和?分别是什么意思? 在ASP.NET开发中一些单词的标准缩写 C#SESSION丢失问题的解决办法 在C#中INTERFACE与ABSTRACT CLASS的区别 SQL命令语句小技巧 JQUERY判断CHECKBOX是否选中三种方法 JS中!=、==、!==、===的用法和区别 在对象比较中,对象相等和对象一致分别指的是什么?
- SD 卡PIN定义
- Laravel建站05--缓存、时间日期处理包
- 最简单的基于FFmpeg的移动端样例附件:SDL Android HelloWorld