CMake ExternalProject_Add 中的 URL 问题
Posted
技术标签:
【中文标题】CMake ExternalProject_Add 中的 URL 问题【英文标题】:Problem with URL in CMake ExternalProject_Add 【发布时间】:2019-03-23 09:35:33 【问题描述】:我在 CMake 中执行 ExternalProject_Add 命令时遇到问题。它说:至少一个 URL 条目是路径(在列表中无效)。
我知道当 URL 中有分号时会发生此错误,但我的 URL 中没有分号。
SET (Boost_Bootstrap_Command ./bootstrap.sh)
SET (Boost_b2_Command ./b2)
SET (Boost_URL https://dl.bintray.com/boostorg/release/1.69.0/source/boost_1_69_0.tar.gz)
ExternalProject_Add(boost
URL $Boost_URL
URL_HASH_SHA256=9a2c2819310839ea373f42d69e733c339b4e9a19deab6bfec448281554aa4dbb
BUILD_IN_SOURCE 1
UPDATE_COMMAND ""
PATCH_COMMAND ""
CONFIGURE_COMMAND $Boost_Bootstrap_Command
BUILD_COMMAND $Boost_b2_Command install
--with-thread
--without-python
--without-mpi
--disable-icu
--prefix=$CMAKE_BINARY_DIR/INSTALL
--threading=single,multi
--link=shared
--variant=release
-j8
INSTALL_COMMAND ""
INSTALL_DIR $CMAKE_BINARY_DIR/INSTALL
)
有人知道我的网址有什么问题吗?
【问题讨论】:
请尝试将此行:BUILD_IN_SOURCE 1
放在您的 URL $Boost_URL
行和您的 URL_HASH_SHA256
行之间,并告知会发生什么。
@MatthieuBrucher 成功了 :) 谢谢。
【参考方案1】:
正如文档所述,您需要 CMake 的下载位置来构建外部项目。不下载包的时候,位置已经在了,但是如果从url或者git或者别的什么地方问,就得提供DOWNLOAD_DIR
。
【讨论】:
谢谢。也解决了我的问题。我不明白At least one entry of URL is a path (invalid in a list)
错误消息是如何对应的。为什么是这条消息?以上是关于CMake ExternalProject_Add 中的 URL 问题的主要内容,如果未能解决你的问题,请参考以下文章
链接到 CMAKE 中的 ExternalProject_add 依赖项
CMake 使 add_library 依赖于 ExternalProject_Add
ExternalProject_Add 使用 pybind11 进行 CMake 项目的智能方法