CMake Error install TARGETS given unknownn argument "INCLUDES"
来源:互联网 发布:如何找到博客数据 编辑:程序博客网 时间:2024/05/22 13:10
在使用源码编译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源码了。
- CMake Error install TARGETS given unknownn argument "INCLUDES"
- CMake Error: TARGETS given no LIBRARY DESTINATION for shared library target
- Debug:error:default argument given for parameter
- 编译错误:error: default argument given for parameter 1 of ‘’
- Python 'takes exactly 1 argument (2 given)' Python error
- C++ error: default argument given for parameter 1
- C++编译错误:error: default argument given for parameter... [-fpermissive]
- Python 'takes exactly 1 argument (2 given)' Python error
- error: pointer targets in passing argument 3 of 'accept' differ in signedness [-Werror=pointer-sign
- CMake targets with detailed dependencies
- mono-3.4.0安装时出现的问题 [do-install] Error 2 [install-pcl-targets] Error 1
- mono-3.4.0 源码安装时出现的问题 [do-install] Error 2 [install-pcl-targets] Error 1 解决方法
- error: default argument given for parameter 2 默认的参数只能给一次
- 编译错误:error: default argument given for parameter 1 of ‘’ [-fpermissive]
- cmake install
- CMake INSTALL
- CMake/Tutorials/Exporting and Importing Targets
- INCLUDES
- jsp中getParameter与getAttribute有何区别?
- 双核处理
- Blog6@linux文件权限管理
- 第四周项目四
- Linux下的I/O多路复用select,poll,epoll浅析
- CMake Error install TARGETS given unknownn argument "INCLUDES"
- Tomcat配置部分页面Https访问
- 【项目经理之修炼(3)】《序章》新项目经理成功就靠它
- 数据结构上机实践第四周项目2
- JNI学习(一)(c和java层对象互相调用)
- 设计模式之创建型
- 72、java异常-Throwable
- C#类型转换的方法
- 2017中国国际健康医疗及养老产业博览会 第二十一届中国(北京)国际养老服务暨健康管理博览会 2017中国国际智慧医疗及可穿戴设备展览会 2017第二十一届中国(北京)国际医疗器械展览会 2017年中