CMake Error install TARGETS given unknownn argument "INCLUDES"



在使用源码编译ceph的时候,碰到了下面的问题,把我整了好几天,让我特别沮丧。问题的背景是:

我使用如下的命令克隆了一份完整的ceph

 

```

git clonehttps://github.com/ceph/ceph.git

cd  ceph

git submodule update --init--recursive

```

然后进行源码编译

 

```

./do_cmake.sh

cd build

make

```

make过程中便会遇到如下的问题:

 

 

----------

Performing configure step for‘rocksdb_ext’

--JNI library is disabled

CMake Error atCMakeLists.txt:658(install):

               install TARGETS given unknown argument"INCLUDES"

CMake Error atCMakeLists.txt:666(install):

               install TARGETS given unknown argument"INCLUDES".

 

 

--Configuring incomplete,errors occured!

make[2]:***[src/rocksdb_ext-prefix/src/rocksdb_ext-stamap/rocksdb_ext-config]错误1

make[1]:***[src/CMakeFiles/rocksdb_ext.dir/all]错误2

make:***[all] 错误2

 

----------

我在编译的过程中怎么都无法跳过去这个步骤,然后我怀疑拉的代码不完整,所以重新拉了几分。

拉的ceph源码大小为329888k,即323M,更新完子模块[git submodule update --init --recursive],完整的ceph源码大小为1050164K,即1.1G左右。

每次都这样,这样我就知道ceph源码我克隆的是完整的。

然后通过阅读错误原因

               install TARGETS given unknown argument"INCLUDES"

未知参数,通过biying国际版查找错误,发现有可能是cmake的版本问题。在执行rocksdb配置步骤的脚本中src/rocksdb/CMakeLists.txt中,我们可以找到要求的版本号和错误发生的地点。

 

```

cmake_minimum_required(***VERSION2.8.11***)

project(rocksdb)

 

if(POLICY CMP0042)

  cmake_policy(SET CMP0042 NEW)

endif()

```

install(

    TARGETS ${ROCKSDB_STATIC_LIB}

    EXPORT RocksDBTargets

    COMPONENT devel

    ARCHIVE DESTINATION"${CMAKE_INSTALL_LIBDIR}"

    INCLUDES DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}"

  )

```

  install(

    TARGETS ${ROCKSDB_SHARED_LIB}

    EXPORT RocksDBTargets

    COMPONENT runtime

    RUNTIME DESTINATION"${CMAKE_INSTALL_BINDIR}"

    LIBRARY DESTINATION"${CMAKE_INSTALL_LIBDIR}"

    INCLUDES DESTINATION "${CMAKE_INSTLL_INCLUDE}"

  )

```

虽然该脚本要求的是cmake的版本是2.8.11,而我的编译环境也是2.8.11,但其实2.8.11是无法完成编译的,这样我们要通过下面的命令把现有的cmake2.8.11给卸载掉,然后安装cmake2.8.12.这样之后就能顺利编译完整ceph源码了。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值