gpt4 book ai didi

cmake - 在 ExternalProject_Add 命令中 INSTALL_DIR 有什么用?

转载 作者:行者123 更新时间:2023-12-03 23:52:10 41 4
gpt4 key购买 nike

我不明白在 ExternalProject_Add 命令中 INSTALL_DIR 的用法。我尝试使用它,但它似乎不起作用。这是一个 CMakeLists.txt 的示例,使用快速编译的 Eigen 库:

cmake_minimum_required (VERSION 2.6)
project (example CXX)
include(ExternalProject)
include(ProcessorCount)
set(CMAKE_VERBOSE_MAKEFILE ON)
ProcessorCount(N)
if(NOT N EQUAL 0)
set(CMAKE_BUILD_FLAGS -j${N})
endif()
ExternalProject_Add
(
mylib
PREFIX myprefix
DOWNLOAD_COMMAND wget http://bitbucket.org/eigen/eigen/get/3.2.4.tar.gz && tar xvzf 3.2.4.tar.gz -C mylib --strip-components=1
)

我选择了以下项目层次结构:
project
CMakeLists.txt
build/

从构建存储库,我输入:
cmake ..
make

安装过程失败并显示以下消息:

file cannot create directory: /usr/local/include/eigen3.
Maybe need administrative privileges.



据我了解,这意味着我需要在配置步骤中定义一个“前缀”:
cmake -D CMAKE_INSTALL_PREFIX=$INSTALL_DIR ..

但是,INSTALL_DIR 变量已在 ExternalProject_Add 命令中定义。但是,当我通过添加修改 INSTALL_DIR 的值时,我得到了同样的错误
INSTALL_DIR myprefix/src/install

在 ExternalProject_Add 命令中。

那么,INSTALL_DIR 有什么用呢?
我究竟做错了什么?

当然,我知道如何提供我自己的配置命令来添加前缀并解决问题。但这不是我的问题。我的问题是:如果我必须这样做,INSTALL_DIR 的目的是什么?

最佳答案

从我在本次讨论中发现的内容 https://www.mail-archive.com/cmake@cmake.org/msg51663.html (滚动到页面末尾以浏览线程消息)使用 CMAKE_ARGS -DCMAKE_INSTALL_PREFIX=${CMAKE_BINARY_DIR}/contrib 确实很常见。

此外,潜伏在ExternalProject.cmake我发现这个目录的唯一效果设置是 CMake 将在执行任何其他操作之前创建 INSTALL_DIR 中指定的目录。

另外,它会设置你可以通过ExternalProject_Get_Property(${project_name} install_dir)收集的属性。命令。

仅此而已。

//从 CMake 3.2.2 版开始

关于cmake - 在 ExternalProject_Add 命令中 INSTALL_DIR 有什么用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29533159/

41 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com