开发者社区> 问答> 正文

编译 Ceph 的时候报错:No rule to make target `er?报错

好不容易前面的 ./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

展开
收起
爱吃鱼的程序员 2020-06-22 11:08:13 652 0
1 条回答
写回答
取消 提交回答
  • https://developer.aliyun.com/profile/5yerqm5bn5yqg?spm=a2c6h.12873639.0.0.6eae304abcjaIB

    终于知道问题所在了,这份代码是直接从https://github.com/ceph/ceph.git上克隆下来的最新版本有问题。如果从 官网上直接下载压缩包的是没问题的。

    @oscfox你没有出现这个问题?

    没有,./configure之前#CXXFLAGS=”-g”了没。看来是makefile没生成对,分析一下./configure的log吧

    引用来自“红薯”的评论

    终于知道问题所在了,这份代码是直接从https://github.com/ceph/ceph.git上克隆下来的最新版本有问题。如果从 官网上直接下载压缩包的是没问题的。

    恩。git下来的或多或少有问题。。。我用的0.87版本的tar包编译就没有问题。

    错误原因原来是这样的:

    ceph在github上,还有好多的submodules,如:

    src/erasure-code/jerasure/gf-complete

    src/erasure-code/jerasure/jerasure

    src/libs3

    src/rocksdb


    gitclonehttps://github.com/ceph/ceph.git是不会取这下submodule的代码的。

    而上面编译ceph遇到的错误就是:编译过程中用到了erasure-code/jerasure/jerasure/src/cauchy.c,由于没有gitsubmodule,所以找不到这个文件而报错。

    解决方法:

    把submodule的代码也取下来

    gitsubmoduleupdate--init--recursive

    2020-06-22 11:08:29
    赞同 展开评论 打赏
问答分类:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
How to Build a Successful Data 立即下载
Run containerd as Container Runtime in production 立即下载
Accelerating Spark-ML with Redis modules 立即下载