Visual studio 为什么cmake install()在VS的发行版文件夹中查找输出文件
这是我的cmake的简化版本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_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