Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/cmake/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
CMake错误(配置文件):配置文件错误配置文件_Cmake_Doxygen - Fatal编程技术网

CMake错误(配置文件):配置文件错误配置文件

CMake错误(配置文件):配置文件错误配置文件,cmake,doxygen,Cmake,Doxygen,我正在c++上做一个项目,需要执行CMakeLists.txt文件来运行它。我使用sudo安装了cmake、doxygen、cmake诅咒gui和make。然后我试着运行这个文件 以下是cmake代码的一部分- if (BUILD_DOC) find_package(Doxygen) configure_file(${PROJECT_SOURCE_DIR}/doc/Doxyfile.in ${PROJECT_SOURCE_DIR}/doc/Doxyfile @ONLY)

我正在c++上做一个项目,需要执行CMakeLists.txt文件来运行它。我使用
sudo
安装了cmake、doxygen、cmake诅咒gui和make。然后我试着运行这个文件

以下是cmake代码的一部分-

if (BUILD_DOC)
   find_package(Doxygen)
   configure_file(${PROJECT_SOURCE_DIR}/doc/Doxyfile.in
   ${PROJECT_SOURCE_DIR}/doc/Doxyfile @ONLY)
   add_custom_target(${PROJECT_NAME}_doc ALL ${DOXYGEN_EXECUTABLE}
   ${PROJECT_SOURCE_DIR}/doc/Doxyfile)
endif ()
在这里,它给了我一个错误消息,说

CMakeLists.txt处的CMake错误:77(配置文件):配置文件 配置文件时出现问题

正如您所知,第77行是
配置文件(${PROJECT\u SOURCE\u DIR}/doc/Doxyfile.in

如果我将
和DOXYGEN\u FOUND
添加到
If
条件中,它根本不执行任何操作,这意味着它找不到DOXYGEN可执行文件。但是,正如我已经告诉过的,我已经安装了DOXYGEN

我是cmake的新手。那么,有人能帮我做这个吗

编辑:

我使用的操作系统是Ubuntu 16.04

在我将
if(DOXYGEN\u-FOUND)
放在命令
find\u-package(DOXYGEN)
之后,它执行了,但是我在第78行中得到了相同的cmake错误,而不是第77行

另外,由于我从评论中获得了足够的信息,我才意识到我的问题更多的是找到Doxyfile.in文件的位置,而不是配置文件。有人能帮我吗?

错误很明显

配置\u文件配置文件时出现问题

CMake命令用于将输入文件复制到输出,并用相应的值替换输入中的
@VARIABLES@

configure_file(${PROJECT_SOURCE_DIR}/doc/Doxyfile.in ${PROJECT_SOURCE_DIR}/doc/Doxyfile @ONLY)
您必须找到此过程失败的原因:

  • 确保
    ${PROJECT\u SOURCE\u DIR}
    包含项目的正确路径,并确保文件
    Doxyfile.in
    是正确的文件夹(/doc)
  • 确保
    Doxyfile.in
    的内容不包含任何语法错误,尤其是@VARIABLES@的语法错误,这些语法错误需要用它们的CMake值替换

  • 请注意,此错误与系统上的Doxygen无关,也与CMake是否实际找到它无关。

    您可能需要安装此工具。在Linux上,它可能是打包的,或者您可以使用它来构建。@basileStrynkevich我只使用Linux(Ubuntu 16.04)然后您可能需要
    apt get install doxygen
    顺便说一句,“doxygen executable not found”是一个误导性的问题标题。请尝试类似“CMake Error(configure_file):configure_file Problem configuring file”之类的内容。变量
    doxygen_found
    在成功调用
    find_package(doxygen)后设置
    。在打电话之前检查一下有点意义。