gpt4 book ai didi

cmake - ExternalProject_Add 不安装项目的 Release 配置

转载 作者:行者123 更新时间:2023-12-04 21:44:43 32 4
gpt4 key购买 nike

编辑:我找到了一个可能的原因,但我不明白为什么:下面脚本中的最后一行 Project(Externals)删除后修复了我的问题。所以现在的问题是为什么?

cmake_minimum_required(VERSION 2.8)

include(ExternalProject)

MACRO(EXTERNAL_DEF aNewTargetName aPathToSource)
ExternalProject_Add(
${aNewTargetName}
PREFIX ${CMAKE_INSTALL_PREFIX}
SOURCE_DIR ${aPathToSource}

TMP_DIR "${CMAKE_INSTALL_PREFIX}/tmp/${CMAKE_BUILD_TYPE}"
DOWNLOAD_DIR "${CMAKE_INSTALL_PREFIX}/src/${CMAKE_BUILD_TYPE}"
BINARY_DIR "${CMAKE_INSTALL_PREFIX}/src/${CMAKE_BUILD_TYPE}/${aNewTargetName}-build"
STAMP_DIR "${CMAKE_INSTALL_PREFIX}/src/${CMAKE_BUILD_TYPE}/${aNewTargetName}-stamp"
CMAKE_ARGS
-DCMAKE_INSTALL_PREFIX:PATH=<INSTALL_DIR>
-DCMAKE_BUILD_TYPE:STRING=${CMAKE_BUILD_TYPE}
--debug-output
BUILD_COMMAND "${CMAKE_COMMAND}" --build
"${CMAKE_INSTALL_PREFIX}/src/${CMAKE_BUILD_TYPE}/${aNewTargetName}-build" --config "${CMAKE_BUILD_TYPE}"
#INSTALL_DIR "${CMAKE_INSTALL_PREFIX}"
)
ENDMACRO()

get_filename_component(zlibAbsPath "./zlib" ABSOLUTE)
EXTERNAL_DEF(zlib_external ${zlibAbsPath})
Project(Externals)

我使用 CMAKE_INSTALL_PREFIX 在上面的 CMakeLists.txt 文件上调用 cmake设置为“d:\externals”和 CMAKE_BUILD_TYPE设置为“发布”

期待:
我希望只构建发布配置。在它建成后,我希望它安装在 D:\externals\bin\zlib.dll .

问题:
实际上,ExternalProject_Add 构建了 Debug 和 Release,并在 D:\externals\bin\zlibd.dll 中安装了 dll 的调试版本。

我的构建脚本不正确吗?我究竟做错了什么?

编辑:
更多信息。我刚注意到。在生成的D:\externals\src\Release\zlib_external-build\zlib.sln中,根本没有选择INSTALL目标进行构建。如果我检查它以构建发布配置,然后从 Visual Studio 中点击“构建”,则 INSTALL 目标会在我期望的位置构建和安装文件。我不知道是怎么回事...

最佳答案

CMAKE_BUILD_TYPE only work with single-configuration projects

您可以更改为:

....
BUILD_COMMAND ""
INSTALL_COMMAND
cmake
--build .
--target install
--config Release
BUILD_ALWAYS 1
...

关于cmake - ExternalProject_Add 不安装项目的 Release 配置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16384831/

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