编译 Ceph 的时候报错:No rule to make target `erasure-code/jerasure/jerasure/src/cauchy.c'
好不容易前面的 ./configure 终于过了,不过需要 --without-libxfs
configure: error: xfs/xfs.h not found (--without-libxfs to disable)
通过 sudo apt-get install xfslibs-dev 解决了上述问题。
安装了很多很多的依赖包,然后来到了编译阶段
结果报了如下错误:
make[3]: *** No rule to make target `erasure-code/jerasure/jerasure/src/cauchy.c', needed by `erasure-code/jerasure/jerasure/src/libec_jerasure_generic_la-cauchy.lo'. Stop.
操作系统:Ubuntu Server 14.04 Beta2,
软件版本:Ceph 0.72.2
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
错误原因原来是这样的:
ceph 在github上,还有好多的submodules, 如:
src/erasure-code/jerasure/gf-complete
src/erasure-code/jerasure/jerasure
src/libs3
src/rocksdb
git clone https://github.com/ceph/ceph.git 是不会取这下submodule的代码的。
而上面编译ceph遇到的错误就是:编译过程中用到了erasure-code/jerasure/jerasure/src/cauchy.c,由于没有git submodule, 所以找不到这个文件而报错。
解决方法:
把submodule的代码也取下来
git submodule update --init --recursive
引用来自“红薯”的评论
终于知道问题所在了,这份代码是直接从 https://github.com/ceph/ceph.git 上克隆下来的最新版本有问题。如果从官网上直接下载压缩包的是没问题的。
没有,./configure 之前# CXXFLAGS=”-g” 了没。看来是 makefile 没生成对,分析一下./configure 的log吧
@oscfox 你没有出现这个问题?