cmake - 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: ""
我该如何解决这个问题?
解决方案
在 Linux 上,默认构建配置为空:既不调试也不发布等。可以从 CMake 输出中轻松找到:
-- Install configuration: ""
因为您的install
命令是使用配置“标记”的Release
,所以默认情况下不会触发它(使用空配置)。
推荐阅读
- java - 如何修改继承类的数组列表中的项目?
- javascript - 您好,我使用 checbox 处理 laravel 过滤器,但遇到了问题。我使用 ajax 和 jquery 来避免重新加载页面
- unity3d - 完成游戏后无法再次连接两个玩家自动谷歌玩游戏服务?
- sql - 将 SQL Server 动态游标转换为 Oracle
- php - 如果输入字段为空,则禁用提交按钮
- sql - 更新链接表'???' 失败的
- sql - 如何在 JOIN 语句中查找导致行重复的列?
- assembly-loading - 如何在不添加到 GAC 的情况下将程序集加载到默认加载上下文中?
- android - 如何从外部库中排除 java 文件?
- java - 如何使用 adb 端口转发?