Visual studio 为什么cmake install()在VS的发行版文件夹中查找输出文件

Visual studio 为什么cmake install()在VS的发行版文件夹中查找输出文件,visual-studio,cmake,installation,targets,Visual Studio,Cmake,Installation,Targets,这是我的cmake的简化版本 cmake_minimum_required(VERSION 2.8.4) project(math) add_library(math math.cpp) function(install_package) install(TARGETS math LIBRARY DESTINATION lib ARCHIVE DESTINATION lib) add_custom_command(TARGET math

这是我的cmake的简化版本

cmake_minimum_required(VERSION 2.8.4)
project(math)

add_library(math math.cpp)

function(install_package)
    install(TARGETS math 
        LIBRARY DESTINATION lib 
        ARCHIVE DESTINATION lib)
    add_custom_command(TARGET math 
        POST_BUILD 
        COMMAND cmake ARGS -P cmake_install.cmake)
endfunction()

install_package()
但是,当我构建调试版本时,会出现以下错误

CMake Error at cmake_install.cmake:55 (file):
  file INSTALL cannot find
  "<my project's root>/build/Release/math.lib".
尽管我是为调试而构建的,但为什么它仍在发布文件夹中? 显然,当我构建发布版时,一切都正常。 我尝试将配置选项添加到安装方法中,但没有帮助。 我正在使用Visual Studio 15。

如果我查看我的cmake_install.cmake,如果您在add_custom_命令调用中未指定任何内容,则默认版本为Release:

设置安装配置名称。 如果未定义CMAKE\u安装\u配置\u名称 IFU类型 stringREGEX替换^A-Za-z0-9 CMAKE_安装_配置_名称${BUILD_TYPE} 其他的 setCMAKE_安装_配置_名称发布 恩迪夫 messageSTATUS安装配置:\${CMAKE\u安装\u配置\u名称}\ 恩迪夫 因此,如果查看INSTALL.vcxproj,CMake生成的调用如下所示:

C:\Program Files\CMake\bin\CMake.exe-DBUILD\u TYPE=$Configuration-P CMake\u install.CMake 这将转化为:

添加自定义命令目标数学 后期构建 COMMAND${CMAKE_COMMAND}ARGS-D BUILD_TYPE=$-P CMAKE_install.CMAKE