首页 > 解决方案 > cmake没有将目标移动到安装目录

问题描述

我的项目结构如下

ProjDir
| - CMakeLists.txt
| - SubDir1
| | - CMakeLists.txt
| | - src
| | - inc
| - SubDir2
| | - CMakeLists.txt
| | - src
| | - inc

我在每个子目录中都有目标,子目录包含在主目录中CMakeLists.txt,如下所示。

add_subdirectory(${CMAKE_SOURCE_DIR}/SubDir1)
add_subdirectory(${CMAKE_SOURCE_DIR}/SubDir2)

我在每个子目录中的目标都安装了 cmake 功能install。这些命令位于CMakeLists.txt各自的子目录中,并且是针对每个目标指定的(参见这篇文章)。

install(TARGETS exe1 DESTINATION ${CMAKE_INSTALL_PREFIX}/bin CONFIGURATIONS Release)

虽然我能够成功编译,但该install命令不会将二进制文件移动到${CMAKE_INSTALL_PREFIX}/bin,而是在生成输出后完成:

Install the project...
-- Install configuration: ""

我该如何解决这个问题?

标签: cmake

解决方案


在 Linux 上,默认构建配置为:既不调试也不发布等。可以从 CMake 输出中轻松找到:

-- Install configuration: ""

因为您的install命令是使用配置“标记”的Release,所以默认情况下不会触发它(使用配置)。


推荐阅读