当前位置:  开发笔记 > 前端 > 正文

未知的CMake命令"ExternalProject_Add"

如何解决《未知的CMake命令"ExternalProject_Add"》经验,为你挑选了2个好方法。

我有以下CMakeLists.txt文件:

cmake_minimum_required (VERSION 3.2 FATAL_ERROR)

project (utils VERSION 1.0.0 LANGUAGES CXX)

ExternalProject_Add(json-c
    GIT_REPOSITORY "https://github.com/json-c/json-c.git"
    UPDATE_COMMAND git pull "https://github.com/json-c/json-c.git"

    CONFIGURE_COMMAND ${CMAKE_CURRENT_SOURCE_DIR}/SDL_image/./configure
                      --prefix=${SDL_INSTALL_DIR}

    SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/json-c

    INSTALL_DIR ${CMAKE_CURRENT_BINARY_DIR}
    )

我想将json-c库添加到我的项目中,但是当我运行cmake时,我收到错误:未知的CMake命令"ExternalProject_Add".我的CMake版本在OS X上是3.6.2



1> Th. Thielema..:

所需模块应该是cmake安装的一部分.但是你必须将它包含在你的项目中:

include(${CMAKE_ROOT}/Modules/ExternalProject.cmake)

在电话会议之前 externalproject_add(YOUR STUFF HERE)

说明:

CMAKE_ROOT指向正在使用的cmake安装.所有模块都在子文件夹模块中.

您可以打印出当前值message(STATUS "CMAKE_ROOT=${CMAKE_ROOT}").或者你正在使用智能宏.见CMake



2> Tsyvarev..:

虽然它不直接写在文档页面中,但cmake-modules部分描述的CMake函数需要包含特定的模块.

由于功能ExternalProject_Add在标题为"ExternalProject" 的文档页面中描述,您需要使用

include(ExternalProject)

在使用它之前.


相同的策略适用于除Find1 之外的任何其他模块.这些模块通过使用

find_package()


对于任何困惑的人,ExternalProject都不是变量,例如“ my_c_project”。您必须从字面上包括“ ExternalProject”
推荐阅读
手机用户2502852037
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有