CMake错误消息“安装FILES给定目录”是什么意思?

时间:2013-09-23 20:45:33

标签: cmake

由于以下原因,我尝试配置CMake项目失败:

 CMake Error at CMakeLists.txt:42 (install):
   install FILES given directory
   "/home/steve/udunits2/build/lib/udunits2lib.html" to install.
 Call Stack (most recent call first):
   lib/CMakeLists.txt:47 (texi_doc)

顶级CMakeLists.txt文件中的第42行是

install(FILES "${CMAKE_CURRENT_BINARY_DIR}/${file}.html" DESTINATION ${CMAKE_INSTALL_DOCDIR})

是用于从.texi输入构建.info和.html文件并安装它们的函数的一部分。 ${CMAKE_INSTALL_DOCDIR}是“share / doc / udunits”。

此错误消息的含义是什么?如何解决此问题?

3 个答案:

答案 0 :(得分:2)

源代码表示错误消息表示FILES命令的install()参数是目录而不是预期的常规文件。输出.html"文件"的原因是一个目录是因为我最初没有使用--no-split的{​​{1}}选项。

我的坏。

答案 1 :(得分:0)

对我来说:

install(
        FILES
        "${PROJECT_SOURCE_DIR}/test_hard1.h"
        "${PROJECT_BINARY_DIR}/config.h"
        # DESTINATION ${CMAKE_INSTALL_INCLUDEDIR} #  error install FILES given no DESTINATION!

        # add include after DESTINATION, then it works
        DESTINATION include ${CMAKE_INSTALL_INCLUDEDIR}
)

答案 2 :(得分:0)

CMake 卡在 TYPE parameter of install(FILES ...) 上。如果您运行的是旧版本的 CMake,或者您的 CMake 安装存在某种错误,则可能会发生这种情况。

尝试添加 TYPE 如下:

install(FILES "${CMAKE_CURRENT_BINARY_DIR}/${file}.html"
        TYPE INCLUDE
        DESTINATION ${CMAKE_INSTALL_DOCDIR})