You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过cmake --install将库的调试构建产物(不含头文件)安装到debug子目录

解决方案:CMake按配置区分Debug/Release安装路径

要实现你期望的目录结构,核心是在CMake的install命令中针对不同构建配置指定不同的安装目标路径——你之前尝试的<THING>_OUTPUT_DIRECTORY_<CONFIG>系列属性仅控制构建过程中文件的生成位置,和cmake --install的复制逻辑无关。

方法1:分配置编写install命令

直接为Release和Debug配置分别指定安装路径,头文件统一安装到根目录的include下:

# 安装头文件(所有配置共用)
install(DIRECTORY ${PROJECT_SOURCE_DIR}/include/SDL3/
        DESTINATION include/SDL3
        FILES_MATCHING PATTERN "*.h")

# 安装Release构建产物
install(TARGETS SDL3
        CONFIGURATIONS Release
        RUNTIME DESTINATION bin  # 对应Release版SDL3.dll
        ARCHIVE DESTINATION lib  # 对应Release版SDL3.lib(静态库/导入库)
        LIBRARY DESTINATION lib) # Windows下一般为dll,此处可忽略

# 安装Debug构建产物
install(TARGETS SDL3
        CONFIGURATIONS Debug
        RUNTIME DESTINATION debug/bin  # 对应Debug版SDL3.dll
        ARCHIVE DESTINATION debug/lib  # 对应Debug版SDL3.lib
        LIBRARY DESTINATION debug/lib)

方法2:用生成器表达式简化代码

如果不想重复编写install(TARGETS),可以用CMake生成器表达式根据当前配置动态拼接路径:

# 安装头文件(所有配置共用)
install(DIRECTORY ${PROJECT_SOURCE_DIR}/include/SDL3/
        DESTINATION include/SDL3
        FILES_MATCHING PATTERN "*.h")

# 按配置动态指定安装路径
install(TARGETS SDL3
        RUNTIME DESTINATION $<$<CONFIG:Debug>:debug/>bin
        ARCHIVE DESTINATION $<$<CONFIG:Debug>:debug/>lib
        LIBRARY DESTINATION $<$<CONFIG:Debug>:debug/>lib)

关键说明

  • CONFIGURATIONS参数:明确当前install规则仅对指定构建配置生效。
  • 生成器表达式$<$<CONFIG:Debug>:debug/>:当构建配置为Debug时,自动在路径前添加debug/前缀;Release配置则直接使用后面的bin/lib路径。
  • 头文件的install命令不指定CONFIGURATIONS,因此所有配置都会将头文件安装到同一位置,符合你的需求。

验证方式

构建完成后,分别执行以下命令安装对应配置的产物:

# 安装Release版本
cmake --install . --config Release --prefix ~/Install

# 安装Debug版本
cmake --install . --config Debug --prefix ~/Install

执行后即可得到你期望的目录结构:

Install/
├─ include/
│  └─ SDL3/
│     ├─ SDL.h
│     └─ ...
├─ bin/
│  └─ SDL3.dll # Release
├─ lib/
│  └─ SDL3.lib # Release
└─ debug/
   ├─ bin/
   │  └─ SDL3.dll # Debug
   └─ lib/
      └─ SDL3.lib # Debug

内容的提问来源于stack exchange,提问作者ProgramGamer

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.12 10:16:17